rspec unit pg14 single-db-ci-connection 22/28
Passed Started
by
@vshushlin

Vladimir Shushlin
1/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/reconcile/persistence/orphaned_workspaces_observer.rb:12: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!2/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/reconcile/persistence/workspaces_from_agent_infos_updater.rb:15: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!3/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/reconcile/persistence/workspaces_to_be_returned_finder.rb:16: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!4/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/reconcile/persistence/workspaces_to_be_returned_updater.rb:11: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!5Run options: exclude {:quarantine=>true, :level=>"background_migration", :click_house=>true, :real_ai_request=>true}6Test environment set up in 1.027615753 seconds7Gitlab::GitAccess8 #check with single protocols allowed9 ssh disabled10 blocks ssh git push and pull11 http disabled12 blocks http push and pull13 when request is made from CI14 doesn't block http pull15 when legacy CI credentials are used16 doesn't block http pull17 #check_project_accessibility!18 when the project exists19 when actor exists20 when actor is a DeployKey21 when the DeployKey has access to the project22 allows push and pull access23 when the Deploykey does not have access to the project24 blocks push and pull with "not found"25 when the the deploy key is restricted with external_authorization26 blocks push and pull with "not found"27 when actor is a User28 when the User can read the project29 allows push and pull access30 when the User cannot read the project31 blocks push and pull with "not found"32 when actor is :ci33 disallows pull access34 does not block pushes with "not found"35 when actor is DeployToken36 when DeployToken is active and belongs to project37 allows pull access38 blocks the push39 when DeployToken does not belong to project40 blocks pull access41 blocks the push42 when the the deploy token is restricted with external_authorization43 blocks pull access44 blocks the push45 when actor is nil46 when guests can read the project47 allows pull access48 does not block pushes with "not found"49 when guests cannot read the project50 blocks pulls with "not found"51 blocks pushes with "not found"52 when the project does not exist53 blocks push and pull with "not found"54 behaves like #check with a key that is not valid55 key is expired56 does not allow expired keys57 key is too small58 does not allow keys which are too small59 key type is not allowed60 does not allow keys which are too small61 behaves like #check with a key that is not valid62 key is expired63 does not allow expired keys64 key is too small65 does not allow keys which are too small66 key type is not allowed67 does not allow keys which are too small68 #add_project_moved_message!69 when a redirect was not followed to find the project70 allows push and pull access71 with a redirect and ssh protocol72 behaves like check_project_moved73 enqueues a redirected message for pushing74 allows push and pull access75 with a redirect and http protocol76 behaves like check_project_moved77 enqueues a redirected message for pushing78 allows push and pull access79 #check_authentication_abilities!80 when download81 raises unauthorized with download error82 when authentication abilities include download code83 does not raise any errors84 when authentication abilities include build download code85 does not raise any errors86 when upload87 raises unauthorized with push error88 when authentication abilities include push code89 does not raise any errors90 #check_command_disabled!91 over http92 when the git-upload-pack command is disabled in config93 when calling git-upload-pack94 is expected to raise Gitlab::GitAccess::ForbiddenError with "Pulling over HTTP is not allowed."95 when calling git-receive-pack96 is expected not to raise Exception97 when the git-receive-pack command is disabled in config98 when calling git-receive-pack99 is expected to raise Gitlab::GitAccess::ForbiddenError with "Pushing over HTTP is not allowed."100 when calling git-upload-pack101 is expected not to raise Exception102 #check_db_accessibility!103 when in a read-only GitLab instance104 is expected to raise Gitlab::GitAccess::ForbiddenError with "You can't push code to a read-only GitLab instance."105 #check_download_access!106 allows maintainers to pull107 disallows guests to pull108 disallows blocked users to pull109 disallows users that are blocked pending approval to pull110 disallows deactivated users to pull111 disallows users with expired password to pull112 with an ldap user113 allows ldap users with expired password to pull114 when the project repository does not exist115 returns not found116 without access to project117 pull code118 is expected to raise Gitlab::GitAccess::NotFoundError with "The project you were looking for could not be found or you don't have permission to view it."119 when project is public120 when repository is enabled121 give access to download code122 when repository is disabled123 does not give access to download code124 deploy key permissions125 pull code126 when project is public127 when deploy key exists in the project128 when the repository is public129 is expected not to raise Exception130 when the repository is private131 is expected not to raise Exception132 when the repository is disabled133 is expected to raise Exception with "You are not allowed to download code from this project."134 when deploy key does not exist in the project135 when the repository is public136 is expected not to raise Exception137 when the repository is private138 is expected to raise Exception with "You are not allowed to download code from this project."139 when the repository is disabled140 is expected to raise Exception with "You are not allowed to download code from this project."141 when project is internal142 when deploy key exists in the project143 when the repository is public144 is expected not to raise Exception145 when the repository is private146 is expected not to raise Exception147 when the repository is disabled148 is expected to raise Exception with "You are not allowed to download code from this project."149 when deploy key does not exist in the project150 when the repository is public151 is expected to raise Exception with "The project you were looking for could not be found or you don't have permission to view it."152 when the repository is private153 is expected to raise Exception with "The project you were looking for could not be found or you don't have permission to view it."154 when the repository is disabled155 is expected to raise Exception with "The project you were looking for could not be found or you don't have permission to view it."156 when project is private157 when deploy key exists in the project158 when the repository is private159 is expected not to raise Exception160 when the repository is disabled161 is expected to raise Exception with "You are not allowed to download code from this project."162 when deploy key does not exist in the project163 when the repository is private164 is expected to raise Exception with "The project you were looking for could not be found or you don't have permission to view it."165 when the repository is disabled166 is expected to raise Exception with "The project you were looking for could not be found or you don't have permission to view it."167 deploy token permissions168 pull code169 when project is authorized170 is expected not to raise Exception171 when unauthorized172 from public project173 is expected not to raise Exception174 from internal project175 is expected to raise Gitlab::GitAccess::NotFoundError with "The project you were looking for could not be found or you don't have permission to view it."176 from private project177 is expected to raise Gitlab::GitAccess::NotFoundError with "The project you were looking for could not be found or you don't have permission to view it."178 build authentication_abilities permissions179 owner180 pull code181 is expected not to raise Exception182 reporter user183 pull code184 is expected not to raise Exception185 admin user186 when admin mode enabled187 when member of the project188 pull code189 is expected not to raise Exception190 when is not member of the project191 pull code192 is expected to raise Gitlab::GitAccess::ForbiddenError with "You are not allowed to download code from this project."193 when admin mode disabled194 when member of the project195 pull code196 is expected not to raise Exception197 when is not member of the project198 pull code199 is expected to raise Gitlab::GitAccess::NotFoundError with "The project you were looking for could not be found or you don't have permission to view it."200 generic CI (build without a user)201 is expected to raise Gitlab::GitAccess::NotFoundError202 check LFS integrity203 when LFS is not enabled204 does not run LFSIntegrity check205 when LFS is enabled206 checks LFS integrity only for first change207 #check_push_access!209 has the correct permissions for admin_with_admin_modes210 has the correct permissions for admin_without_admin_modes (PENDING: All admins are allowed to perform actions https://gitlab.com/gitlab-org/gitlab/-/issues/296509)211 has the correct permissions for maintainers212 has the correct permissions for developers213 has the correct permissions for reporters214 has the correct permissions for guests215 when developers are allowed to push into the exact protected branch216 has the correct permissions for admin_with_admin_modes217 has the correct permissions for admin_without_admin_modes (PENDING: All admins are allowed to perform actions https://gitlab.com/gitlab-org/gitlab/-/issues/296509)218 has the correct permissions for maintainers219 has the correct permissions for developers220 has the correct permissions for reporters221 has the correct permissions for guests222 when developers are allowed to merge into the exact protected branch223 when a merge request exists for the given source/target branch224 when the merge request is in progress225 has the correct permissions for admin_with_admin_modes226 has the correct permissions for admin_without_admin_modes (PENDING: All admins are allowed to perform actions https://gitlab.com/gitlab-org/gitlab/-/issues/296509)227 has the correct permissions for maintainers228 has the correct permissions for developers229 has the correct permissions for reporters230 has the correct permissions for guests231 when the merge request is not in progress232 has the correct permissions for admin_with_admin_modes233 has the correct permissions for admin_without_admin_modes (PENDING: All admins are allowed to perform actions https://gitlab.com/gitlab-org/gitlab/-/issues/296509)234 has the correct permissions for maintainers235 has the correct permissions for developers236 has the correct permissions for reporters237 has the correct permissions for guests238 when a merge request does not exist for the given source/target branch239 has the correct permissions for admin_with_admin_modes240 has the correct permissions for admin_without_admin_modes (PENDING: All admins are allowed to perform actions https://gitlab.com/gitlab-org/gitlab/-/issues/296509)241 has the correct permissions for maintainers242 has the correct permissions for developers243 has the correct permissions for reporters244 has the correct permissions for guests245 when developers are allowed to push and merge into the exact protected branch246 has the correct permissions for admin_with_admin_modes247 has the correct permissions for admin_without_admin_modes (PENDING: All admins are allowed to perform actions https://gitlab.com/gitlab-org/gitlab/-/issues/296509)248 has the correct permissions for maintainers249 has the correct permissions for developers250 has the correct permissions for reporters251 has the correct permissions for guests252 when no one is allowed to push to the feature protected branch253 has the correct permissions for admin_with_admin_modes254 has the correct permissions for admin_without_admin_modes (PENDING: All admins are allowed to perform actions https://gitlab.com/gitlab-org/gitlab/-/issues/296509)255 has the correct permissions for maintainers256 has the correct permissions for developers257 has the correct permissions for reporters258 has the correct permissions for guests260 has the correct permissions for admin_with_admin_modes261 has the correct permissions for admin_without_admin_modes (PENDING: All admins are allowed to perform actions https://gitlab.com/gitlab-org/gitlab/-/issues/296509)262 has the correct permissions for maintainers263 has the correct permissions for developers264 has the correct permissions for reporters265 has the correct permissions for guests266 when developers are allowed to push into the wildcard protected branch267 has the correct permissions for admin_with_admin_modes268 has the correct permissions for admin_without_admin_modes (PENDING: All admins are allowed to perform actions https://gitlab.com/gitlab-org/gitlab/-/issues/296509)269 has the correct permissions for maintainers270 has the correct permissions for developers271 has the correct permissions for reporters272 has the correct permissions for guests273 when developers are allowed to merge into the wildcard protected branch274 when a merge request exists for the given source/target branch275 when the merge request is in progress276 has the correct permissions for admin_with_admin_modes277 has the correct permissions for admin_without_admin_modes (PENDING: All admins are allowed to perform actions https://gitlab.com/gitlab-org/gitlab/-/issues/296509)278 has the correct permissions for maintainers279 has the correct permissions for developers280 has the correct permissions for reporters281 has the correct permissions for guests282 when the merge request is not in progress283 has the correct permissions for admin_with_admin_modes284 has the correct permissions for admin_without_admin_modes (PENDING: All admins are allowed to perform actions https://gitlab.com/gitlab-org/gitlab/-/issues/296509)285 has the correct permissions for maintainers286 has the correct permissions for developers287 has the correct permissions for reporters288 has the correct permissions for guests289 when a merge request does not exist for the given source/target branch290 has the correct permissions for admin_with_admin_modes291 has the correct permissions for admin_without_admin_modes (PENDING: All admins are allowed to perform actions https://gitlab.com/gitlab-org/gitlab/-/issues/296509)292 has the correct permissions for maintainers293 has the correct permissions for developers294 has the correct permissions for reporters295 has the correct permissions for guests296 when developers are allowed to push and merge into the wildcard protected branch297 has the correct permissions for admin_with_admin_modes298 has the correct permissions for admin_without_admin_modes (PENDING: All admins are allowed to perform actions https://gitlab.com/gitlab-org/gitlab/-/issues/296509)299 has the correct permissions for maintainers300 has the correct permissions for developers301 has the correct permissions for reporters302 has the correct permissions for guests303 when no one is allowed to push to the feat* protected branch304 has the correct permissions for admin_with_admin_modes305 has the correct permissions for admin_without_admin_modes (PENDING: All admins are allowed to perform actions https://gitlab.com/gitlab-org/gitlab/-/issues/296509)306 has the correct permissions for maintainers307 has the correct permissions for developers308 has the correct permissions for reporters309 has the correct permissions for guests310 when pushing to a project311 disallows users that are blocked pending approval to push312 does not allow deactivated users to push313 disallows users with expired password to push314 avoids N+1 queries315 raises TimeoutError when #check_access! raises a timeout error316 with an ldap user317 allows ldap users with expired password to push318 disallows blocked ldap users with expired password to push319 build authentication abilities320 when project is authorized321 is expected to raise Gitlab::GitAccess::ForbiddenError with "You are not allowed to upload code."322 when unauthorized323 to public project324 is expected to raise Gitlab::GitAccess::ForbiddenError with "You are not allowed to upload code."325 to internal project326 is expected to raise Gitlab::GitAccess::ForbiddenError with "You are not allowed to upload code."327 to private project328 is expected to raise Gitlab::GitAccess::ForbiddenError with "You are not allowed to upload code."329 when the repository is read-only330 denies push access331 deploy key permissions332 when deploy_key can push333 when project is authorized334 is expected not to raise Exception335 when unauthorized336 to public project337 is expected to raise Gitlab::GitAccess::ForbiddenError with "This deploy key does not have write access to this project."338 to internal project339 is expected to raise Gitlab::GitAccess::NotFoundError with "The project you were looking for could not be found or you don't have permission to view it."340 to private project341 is expected to raise Gitlab::GitAccess::NotFoundError with "The project you were looking for could not be found or you don't have permission to view it."342 when deploy_key cannot push343 when project is authorized344 is expected to raise Gitlab::GitAccess::ForbiddenError with "This deploy key does not have write access to this project."345 when unauthorized346 to public project347 is expected to raise Gitlab::GitAccess::ForbiddenError with "This deploy key does not have write access to this project."348 to internal project349 is expected to raise Gitlab::GitAccess::NotFoundError with "The project you were looking for could not be found or you don't have permission to view it."350 to private project351 is expected to raise Gitlab::GitAccess::NotFoundError with "The project you were looking for could not be found or you don't have permission to view it."352 terms are enforced353 as an anonymous user to a public project354 is expected not to raise Exception355 as a guest to a public project356 behaves like access after accepting terms357 blocks access when the user did not accept terms358 allows access when the user accepted the terms359 as a reporter to the project360 behaves like access after accepting terms361 blocks access when the user did not accept terms362 allows access when the user accepted the terms363 as a developer of the project364 behaves like access after accepting terms365 blocks access when the user did not accept terms366 allows access when the user accepted the terms367 as a maintainer of the project368 behaves like access after accepting terms369 blocks access when the user did not accept terms370 allows access when the user accepted the terms371 as an owner of the project372 behaves like access after accepting terms373 blocks access when the user did not accept terms374 allows access when the user accepted the terms375 when a ci build clones the project376 doesn't block http pull377MergeRequests::PushOptionsHandlerService378 `create` push option379 with a new branch380 behaves like a service that can create a merge request381 creates a merge request with the correct target branch382 when project has been forked383 sets the correct source and target project384 with an existing branch but no open MR385 behaves like a service that can create a merge request386 creates a merge request with the correct target branch387 when project has been forked388 sets the correct source and target project389 with an existing branch that has a merge request open390 behaves like a service that does not create a merge request391 is expected not to change `MergeRequest.count`392 behaves like with a deleted branch393 behaves like a service that does nothing394 is expected not to change `MergeRequest.count`395 is expected not to change `MergeRequest.maximum(:updated_at)`396 behaves like with the project default branch397 behaves like a service that does nothing398 is expected not to change `MergeRequest.count`399 is expected not to change `MergeRequest.maximum(:updated_at)`400 `merge_when_pipeline_succeeds` push option401 with a new branch402 adds an error to the service403 behaves like a service that does not create a merge request404 is expected not to change `MergeRequest.count`405 when coupled with the `create` push option406 behaves like a service that can create a merge request407 creates a merge request with the correct target branch408 when project has been forked409 sets the correct source and target project410 behaves like a service that can set the merge request to merge when pipeline succeeds411 sets auto_merge_enabled412 with an existing branch but no open MR413 adds an error to the service414 behaves like a service that does not create a merge request415 is expected not to change `MergeRequest.count`416 when coupled with the `create` push option417 behaves like a service that can create a merge request418 creates a merge request with the correct target branch419 when project has been forked420 sets the correct source and target project421 behaves like a service that can set the merge request to merge when pipeline succeeds422 sets auto_merge_enabled423 with an existing branch that has a merge request open424 behaves like a service that does not create a merge request425 is expected not to change `MergeRequest.count`426 behaves like a service that can set the merge request to merge when pipeline succeeds427 sets auto_merge_enabled428 behaves like with a deleted branch429 behaves like a service that does nothing430 is expected not to change `MergeRequest.count`431 is expected not to change `MergeRequest.maximum(:updated_at)`432 behaves like with the project default branch433 behaves like a service that does nothing434 is expected not to change `MergeRequest.count`435 is expected not to change `MergeRequest.maximum(:updated_at)`436 `remove_source_branch` push option437 with a new branch438 adds an error to the service439 behaves like a service that does not create a merge request440 is expected not to change `MergeRequest.count`441 when coupled with the `create` push option442 behaves like a service that can create a merge request443 creates a merge request with the correct target branch444 when project has been forked445 sets the correct source and target project446 behaves like a service that can remove the source branch when it is merged447 returns true to force_remove_source_branch?448 with an existing branch but no open MR449 adds an error to the service450 behaves like a service that does not create a merge request451 is expected not to change `MergeRequest.count`452 when coupled with the `create` push option453 behaves like a service that can create a merge request454 creates a merge request with the correct target branch455 when project has been forked456 sets the correct source and target project457 behaves like a service that can remove the source branch when it is merged458 returns true to force_remove_source_branch?459 with an existing branch that has a merge request open460 behaves like a service that does not create a merge request461 is expected not to change `MergeRequest.count`462 behaves like a service that can remove the source branch when it is merged463 returns true to force_remove_source_branch?464 behaves like with a deleted branch465 behaves like a service that does nothing466 is expected not to change `MergeRequest.count`467 is expected not to change `MergeRequest.maximum(:updated_at)`468 behaves like with the project default branch469 behaves like a service that does nothing470 is expected not to change `MergeRequest.count`471 is expected not to change `MergeRequest.maximum(:updated_at)`472 `target` push option473 with a new branch474 adds an error to the service475 behaves like a service that does not create a merge request476 is expected not to change `MergeRequest.count`477 when coupled with the `create` push option478 behaves like a service that can create a merge request479 creates a merge request with the correct target branch480 when project has been forked481 sets the correct source and target project482 behaves like a service that can set the target of a merge request483 sets the target_branch484 with an existing branch but no open MR485 adds an error to the service486 behaves like a service that does not create a merge request487 is expected not to change `MergeRequest.count`488 when coupled with the `create` push option489 behaves like a service that can create a merge request490 creates a merge request with the correct target branch491 when project has been forked492 sets the correct source and target project493 behaves like a service that can set the target of a merge request494 sets the target_branch495 with an existing branch that has a merge request open496 behaves like a service that does not create a merge request497 is expected not to change `MergeRequest.count`498 behaves like a service that can set the target of a merge request499 sets the target_branch500 behaves like with a deleted branch501 behaves like a service that does nothing502 is expected not to change `MergeRequest.count`503 is expected not to change `MergeRequest.maximum(:updated_at)`504 behaves like with the project default branch505 behaves like a service that does nothing506 is expected not to change `MergeRequest.count`507 is expected not to change `MergeRequest.maximum(:updated_at)`508 `title` push option509 with a new branch510 adds an error to the service511 behaves like a service that does not create a merge request512 is expected not to change `MergeRequest.count`513 when coupled with the `create` push option514 behaves like a service that can create a merge request515 creates a merge request with the correct target branch516 when project has been forked517 sets the correct source and target project518 behaves like a service that can set the title of a merge request519 sets the title520 with an existing branch but no open MR521 adds an error to the service522 behaves like a service that does not create a merge request523 is expected not to change `MergeRequest.count`524 when coupled with the `create` push option525 behaves like a service that can create a merge request526 creates a merge request with the correct target branch527 when project has been forked528 sets the correct source and target project529 behaves like a service that can set the title of a merge request530 sets the title531 with an existing branch that has a merge request open532 behaves like a service that does not create a merge request533 is expected not to change `MergeRequest.count`534 behaves like a service that can set the title of a merge request535 sets the title536 behaves like with a deleted branch537 behaves like a service that does nothing538 is expected not to change `MergeRequest.count`539 is expected not to change `MergeRequest.maximum(:updated_at)`540 behaves like with the project default branch541 behaves like a service that does nothing542 is expected not to change `MergeRequest.count`543 is expected not to change `MergeRequest.maximum(:updated_at)`544 `description` push option545 with a new branch546 adds an error to the service547 behaves like a service that does not create a merge request548 is expected not to change `MergeRequest.count`549 when coupled with the `create` push option550 behaves like a service that can create a merge request551 creates a merge request with the correct target branch552 when project has been forked553 sets the correct source and target project554 behaves like a service that can set the description of a merge request555 sets the description556 with an existing branch but no open MR557 adds an error to the service558 behaves like a service that does not create a merge request559 is expected not to change `MergeRequest.count`560 when coupled with the `create` push option561 behaves like a service that can create a merge request562 creates a merge request with the correct target branch563 when project has been forked564 sets the correct source and target project565 behaves like a service that can set the description of a merge request566 sets the description567 with an existing branch that has a merge request open568 behaves like a service that does not create a merge request569 is expected not to change `MergeRequest.count`570 behaves like a service that can set the description of a merge request571 sets the description572 with a multiline description573 behaves like a service that does not create a merge request574 is expected not to change `MergeRequest.count`575 behaves like a service that can set the multiline description of a merge request576 sets the multiline description577 behaves like with a deleted branch578 behaves like a service that does nothing579 is expected not to change `MergeRequest.count`580 is expected not to change `MergeRequest.maximum(:updated_at)`581 behaves like with the project default branch582 behaves like a service that does nothing583 is expected not to change `MergeRequest.count`584 is expected not to change `MergeRequest.maximum(:updated_at)`585 `draft` push option586 with a new branch587 adds an error to the service588 behaves like a service that does not create a merge request589 is expected not to change `MergeRequest.count`590 when coupled with the `create` push option591 behaves like a service that can create a merge request592 creates a merge request with the correct target branch593 when project has been forked594 sets the correct source and target project595 behaves like a service that can set the draft of a merge request596 sets the draft597 with an existing branch but no open MR598 adds an error to the service599 behaves like a service that does not create a merge request600 is expected not to change `MergeRequest.count`601 when coupled with the `create` push option602 behaves like a service that can create a merge request603 creates a merge request with the correct target branch604 when project has been forked605 sets the correct source and target project606 behaves like a service that can set the draft of a merge request607 sets the draft608 with an existing branch that has a merge request open609 behaves like a service that does not create a merge request610 is expected not to change `MergeRequest.count`611 behaves like a service that can set the draft of a merge request612 sets the draft613 draft title provided while `draft` push option is set to false614 behaves like a service that can create a merge request615 creates a merge request with the correct target branch616 when project has been forked617 sets the correct source and target project618 behaves like a service that can set the draft of a merge request619 sets the draft620 behaves like with a deleted branch621 behaves like a service that does nothing622 is expected not to change `MergeRequest.count`623 is expected not to change `MergeRequest.maximum(:updated_at)`624 behaves like with the project default branch625 behaves like a service that does nothing626 is expected not to change `MergeRequest.count`627 is expected not to change `MergeRequest.maximum(:updated_at)`628 `label` push option629 with a new branch630 adds an error to the service631 behaves like a service that does not create a merge request632 is expected not to change `MergeRequest.count`633 when coupled with the `create` push option634 behaves like a service that can create a merge request635 creates a merge request with the correct target branch636 when project has been forked637 sets the correct source and target project638 behaves like a service that can change labels of a merge request639 changes label count640 with an existing branch but no open MR641 adds an error to the service642 behaves like a service that does not create a merge request643 is expected not to change `MergeRequest.count`644 when coupled with the `create` push option645 behaves like a service that can create a merge request646 creates a merge request with the correct target branch647 when project has been forked648 sets the correct source and target project649 behaves like a service that can change labels of a merge request650 changes label count651 with an existing branch that has a merge request open652 behaves like a service that does not create a merge request653 is expected not to change `MergeRequest.count`654 behaves like a service that can change labels of a merge request655 changes label count656 behaves like with a deleted branch657 behaves like a service that does nothing658 is expected not to change `MergeRequest.count`659 is expected not to change `MergeRequest.maximum(:updated_at)`660 behaves like with the project default branch661 behaves like a service that does nothing662 is expected not to change `MergeRequest.count`663 is expected not to change `MergeRequest.maximum(:updated_at)`664 `unlabel` push option665 with a new branch666 adds an error to the service667 behaves like a service that does not create a merge request668 is expected not to change `MergeRequest.count`669 when coupled with the `create` push option670 behaves like a service that can create a merge request671 creates a merge request with the correct target branch672 when project has been forked673 sets the correct source and target project674 behaves like a service that can change labels of a merge request675 changes label count676 with an existing branch but no open MR677 adds an error to the service678 behaves like a service that does not create a merge request679 is expected not to change `MergeRequest.count`680 when coupled with the `create` push option681 behaves like a service that can create a merge request682 creates a merge request with the correct target branch683 when project has been forked684 sets the correct source and target project685 behaves like a service that can change labels of a merge request686 changes label count687 with an existing branch that has a merge request open688 behaves like a service that does not create a merge request689 is expected not to change `MergeRequest.count`690 behaves like a service that can change labels of a merge request691 changes label count692 behaves like with a deleted branch693 behaves like a service that does nothing694 is expected not to change `MergeRequest.count`695 is expected not to change `MergeRequest.maximum(:updated_at)`696 behaves like with the project default branch697 behaves like a service that does nothing698 is expected not to change `MergeRequest.count`699 is expected not to change `MergeRequest.maximum(:updated_at)`700 `milestone` push option701 with a valid milestone702 with a new branch703 adds an error to the service704 behaves like a service that does not create a merge request705 is expected not to change `MergeRequest.count`706 when coupled with the `create` push option707 behaves like a service that can create a merge request708 creates a merge request with the correct target branch709 when project has been forked710 sets the correct source and target project711 behaves like a service that can set the milestone of a merge request712 sets the milestone713 with an existing branch but no open MR714 adds an error to the service715 behaves like a service that does not create a merge request716 is expected not to change `MergeRequest.count`717 when coupled with the `create` push option718 behaves like a service that can create a merge request719 creates a merge request with the correct target branch720 when project has been forked721 sets the correct source and target project722 behaves like a service that can set the milestone of a merge request723 sets the milestone724 with an existing branch that has a merge request open725 behaves like a service that does not create a merge request726 is expected not to change `MergeRequest.count`727 behaves like a service that can set the milestone of a merge request728 sets the milestone729 behaves like with a deleted branch730 behaves like a service that does nothing731 is expected not to change `MergeRequest.count`732 is expected not to change `MergeRequest.maximum(:updated_at)`733 behaves like with the project default branch734 behaves like a service that does nothing735 is expected not to change `MergeRequest.count`736 is expected not to change `MergeRequest.maximum(:updated_at)`737 with invalid milestone738 behaves like a service that can set the milestone of a merge request739 sets the milestone740 with an ancestor milestone741 with immediate parent milestone742 behaves like a service that can create a merge request743 creates a merge request with the correct target branch744 when project has been forked745 sets the correct source and target project746 behaves like a service that can set the milestone of a merge request747 sets the milestone748 with multi-level ancestor milestone749 behaves like a service that can create a merge request750 creates a merge request with the correct target branch751 when project has been forked752 sets the correct source and target project753 behaves like a service that can set the milestone of a merge request754 sets the milestone755 `assign` push option756 behaves like with a new branch757 adds an error to the service758 behaves like a service that does not create a merge request759 is expected not to change `MergeRequest.count`760 behaves like when coupled with the `create` push option761 behaves like a service that can create a merge request762 creates a merge request with the correct target branch763 when project has been forked764 sets the correct source and target project765 behaves like a service that can change assignees of a merge request766 changes assignee count767 behaves like with an existing branch but no open MR768 adds an error to the service769 behaves like a service that does not create a merge request770 is expected not to change `MergeRequest.count`771 behaves like when coupled with the `create` push option772 behaves like a service that can create a merge request773 creates a merge request with the correct target branch774 when project has been forked775 sets the correct source and target project776 behaves like a service that can change assignees of a merge request777 changes assignee count778 behaves like with an existing branch that has a merge request open in foss779 behaves like a service that does not create a merge request780 is expected not to change `MergeRequest.count`781 behaves like a service that can change assignees of a merge request782 changes assignee count783 behaves like with a deleted branch784 behaves like a service that does nothing785 is expected not to change `MergeRequest.count`786 is expected not to change `MergeRequest.maximum(:updated_at)`787 behaves like with the project default branch788 behaves like a service that does nothing789 is expected not to change `MergeRequest.count`790 is expected not to change `MergeRequest.maximum(:updated_at)`791 when passing in usernames792 behaves like with an existing branch that has a merge request open in foss793 behaves like a service that does not create a merge request794 is expected not to change `MergeRequest.count`795 behaves like a service that can change assignees of a merge request796 changes assignee count797 `unassign` push option798 behaves like with a new branch799 adds an error to the service800 behaves like a service that does not create a merge request801 is expected not to change `MergeRequest.count`802 behaves like when coupled with the `create` push option803 behaves like a service that can create a merge request804 creates a merge request with the correct target branch805 when project has been forked806 sets the correct source and target project807 behaves like a service that can change assignees of a merge request808 changes assignee count809 behaves like with an existing branch but no open MR810 adds an error to the service811 behaves like a service that does not create a merge request812 is expected not to change `MergeRequest.count`813 behaves like when coupled with the `create` push option814 behaves like a service that can create a merge request815 creates a merge request with the correct target branch816 when project has been forked817 sets the correct source and target project818 behaves like a service that can change assignees of a merge request819 changes assignee count820 behaves like with an existing branch that has a merge request open in foss821 behaves like a service that does not create a merge request822 is expected not to change `MergeRequest.count`823 behaves like a service that can change assignees of a merge request824 changes assignee count825 behaves like with a deleted branch826 behaves like a service that does nothing827 is expected not to change `MergeRequest.count`828 is expected not to change `MergeRequest.maximum(:updated_at)`829 behaves like with the project default branch830 behaves like a service that does nothing831 is expected not to change `MergeRequest.count`832 is expected not to change `MergeRequest.maximum(:updated_at)`833 when passing in usernames834 behaves like with an existing branch that has a merge request open in foss835 behaves like a service that does not create a merge request836 is expected not to change `MergeRequest.count`837 behaves like a service that can change assignees of a merge request838 changes assignee count839 multiple pushed branches840 creates a merge request per branch841 when there are too many pushed branches842 records an error843 no push options844 behaves like a service that does nothing845 is expected not to change `MergeRequest.count`846 is expected not to change `MergeRequest.maximum(:updated_at)`847 no user848 records an error849 unauthorized user850 records an error851 handling unexpected exceptions852 records an error853 writes to Gitlab::AppLogger854 when target is not a valid branch name855 records an error856 when user does not have access to target project857 records an error858 when MRs are not enabled859 records an error860 when MR has ActiveRecord errors861 adds the error to its errors property862ProjectTeam863 personal project864 members collection865 is expected to include #<User id:390 @user184>866 is expected not to include #<User id:396 @user189>867 is expected not to include #<User id:399 @user191>868 is expected not to include #<User id:405 @user196>869 access methods870 is expected to be truthy871 is expected to be falsey872 is expected to be falsey873 is expected to be falsey874 is expected to be falsey875 is expected to be truthy876 is expected to be truthy877 is expected to be falsey878 is expected to be falsey879 group project880 members collection881 is expected to include #<User id:448 @user229>882 is expected to include #<User id:452 @user232>883 is expected to include #<User id:459 @user238>884 is expected not to include #<User id:463 @user241>885 is expected not to include #<User id:470 @user247>886 access methods887 is expected to be truthy888 is expected to be truthy889 is expected to be truthy890 is expected to be falsey891 is expected to be falsey892 is expected to be falsey893 is expected to be truthy894 is expected to be truthy895 is expected to be falsey896 is expected to be falsey897 owner methods898 personal project899 is expected to contain exactly #<User id:524 @namespace228>900 is expected to be truthy901 group project902 is expected to contain exactly #<User id:526 @user291> and #<User id:527 @user292>903 is expected to be truthy904 is expected to be truthy905 #fetch_members906 personal project907 returns project members908 returns project members of a specified level909 returns invited members of a group910 returns invited members of a group of a specified level911 group project912 returns project members913 returns project members of a specified level914 #import_team915 matches the imported members916 target project includes source member with the same access917 does not change the source project members918 when importer is a maintainer in target project919 behaves like imports source owners with correct access920 is expected to eq 40921 when importer is an owner in target project922 behaves like imports source owners with correct access923 is expected to eq 50924 when source_project does not exist925 is expected to eq false926 #find_member927 personal project928 is expected to be a kind of ProjectMember(id: integer, access_level: integer, source_id: integer, source_type: string, user_id: i...ss: boolean, member_namespace_id: integer, member_role_id: integer, expiry_notified_at: timestamptz)929 is expected to be a kind of ProjectMember(id: integer, access_level: integer, source_id: integer, source_type: string, user_id: i...ss: boolean, member_namespace_id: integer, member_role_id: integer, expiry_notified_at: timestamptz)930 is expected to be a kind of ProjectMember(id: integer, access_level: integer, source_id: integer, source_type: string, user_id: i...ss: boolean, member_namespace_id: integer, member_role_id: integer, expiry_notified_at: timestamptz)931 is expected to be nil932 is expected to be nil933 group project934 is expected to be a kind of GroupMember(id: integer, access_level: integer, source_id: integer, source_type: string, user_id: int...ss: boolean, member_namespace_id: integer, member_role_id: integer, expiry_notified_at: timestamptz)935 is expected to be a kind of GroupMember(id: integer, access_level: integer, source_id: integer, source_type: string, user_id: int...ss: boolean, member_namespace_id: integer, member_role_id: integer, expiry_notified_at: timestamptz)936 is expected to be a kind of GroupMember(id: integer, access_level: integer, source_id: integer, source_type: string, user_id: int...ss: boolean, member_namespace_id: integer, member_role_id: integer, expiry_notified_at: timestamptz)937 is expected to be nil938 is expected to be nil939 #members_in_project_and_ancestors940 group project941 filters out users who are not members of the project942 #members_with_access_levels943 with access_levels944 filters members who have given access levels945 without access_levels946 returns empty array947 #add_members948 add the given users to the team949 #add_member950 add the given user to the team951 #human_max_access952 returns Maintainer role953 returns Owner role954 #contributor?955 when user is a member of project956 is expected to equal false957 is expected to equal false958 is expected to equal false959 when user has at least one merge request merged into default_branch960 is expected to equal true961 is expected to equal false962 #max_member_access963 personal project964 when project is not shared with group965 is expected to eq 40966 is expected to eq 20967 is expected to eq 10968 is expected to eq 0969 is expected to eq 0970 when project is shared with group971 is expected to eq 30972 is expected to eq 20973 is expected to eq 0974 is expected to eq 0975 but share_with_group_lock is true976 is expected to eq 0977 is expected to eq 0978 group project979 is expected to eq 40980 is expected to eq 20981 is expected to eq 10982 is expected to eq 0983 is expected to eq 0984 #purge_member_access_cache_for_user_id985 removes cached max access for user from store986 #member?987 returns false for no user988 returns true for personal projects of the user989 returns true for projects of groups the user is a member of990 returns true for projects for which the user is a member of991 returns true for projects shared on a group the user is a member of992 checks for the correct minimum level access993 #contribution_check_for_user_ids994 does not perform extra queries when asked for users who have already been found995 only requests the extra users when uncached users are passed996 returns correct contributors997 #max_member_access_for_user_ids998 with RequestStore enabled999 returns correct roles for different users1000 does not perform extra queries when asked for users who have already been found1001 only requests the extra users when uncached users are passed1002 with RequestStore disabled1003 returns correct roles for different users1004Gitlab::Database::QueryAnalyzers::PreventSetOperatorMismatch::SelectStmt1005 # order random1006 with INTERSECT1007 for basic INTERSECT queries1008 query_name: "set operator with static columns", behavior: "valid SQL"1009 behaves like valid SQL1010 is expected not to include :invalid1011 query_name: "set operator with static referenced columns", behavior: "valid SQL"1012 behaves like valid SQL1013 is expected not to include :invalid1014 query_name: "set operator with static alias referenced columns", behavior: "valid SQL"1015 behaves like valid SQL1016 is expected not to include :invalid1017 query_name: "set operator with dynamic columns", behavior: "valid SQL"1018 behaves like valid SQL1019 is expected not to include :invalid1020 query_name: "set operator with dynamic referenced columns", behavior: "valid SQL"1021 behaves like valid SQL1022 is expected not to include :invalid1023 query_name: "set operator with dynamic referenced aliased columns", behavior: "valid SQL"1024 behaves like valid SQL1025 is expected not to include :invalid1026 query_name: "set operator with dynamic columns without using star", behavior: "invalid SQL"1027 behaves like invalid SQL1028 is expected to include :invalid1029 query_name: "set operator with single dynamic referenced columns", behavior: "valid SQL"1030 behaves like valid SQL1031 is expected not to include :invalid1032 query_name: "set operator with static and dynamic columns", behavior: "invalid SQL"1033 behaves like invalid SQL1034 is expected to include :invalid1035 query_name: "set operator with static and dynamic aliased columns", behavior: "invalid SQL"1036 behaves like invalid SQL1037 is expected to include :invalid1038 query_name: "set operator with static aliased columns and dynamic columns", behavior: "invalid SQL"1039 behaves like invalid SQL1040 is expected to include :invalid1041 query_name: "set operator with static columns and dynamic aliased columns", behavior: "invalid SQL"1042 behaves like invalid SQL1043 is expected to include :invalid1044 query_name: "set operator with static and dynamic aliased columns", behavior: "invalid SQL"1045 behaves like invalid SQL1046 is expected to include :invalid1047 query_name: "set operator with mixed dynamic and static columns", behavior: "valid SQL"1048 behaves like valid SQL1049 is expected not to include :invalid1050 query_name: "set operator without references", behavior: "valid SQL"1051 behaves like valid SQL1052 is expected not to include :invalid1053 for subquery1054 with INTERSECT1055 select_columns: "*"1056 query_name: "set operator with static columns", behavior: "valid SQL"1057 behaves like valid SQL1058 is expected not to include :invalid1059 query_name: "set operator with static referenced columns", behavior: "valid SQL"1060 behaves like valid SQL1061 is expected not to include :invalid1062 query_name: "set operator with static alias referenced columns", behavior: "valid SQL"1063 behaves like valid SQL1064 is expected not to include :invalid1065 query_name: "set operator with dynamic columns", behavior: "valid SQL"1066 behaves like valid SQL1067 is expected not to include :invalid1068 query_name: "set operator with dynamic referenced columns", behavior: "valid SQL"1069 behaves like valid SQL1070 is expected not to include :invalid1071 query_name: "set operator with dynamic referenced aliased columns", behavior: "valid SQL"1072 behaves like valid SQL1073 is expected not to include :invalid1074 query_name: "set operator with dynamic columns without using star", behavior: "invalid SQL"1075 behaves like invalid SQL1076 is expected to include :invalid1077 query_name: "set operator with single dynamic referenced columns", behavior: "valid SQL"1078 behaves like valid SQL1079 is expected not to include :invalid1080 query_name: "set operator with static and dynamic columns", behavior: "invalid SQL"1081 behaves like invalid SQL1082 is expected to include :invalid1083 query_name: "set operator with static and dynamic aliased columns", behavior: "invalid SQL"1084 behaves like invalid SQL1085 is expected to include :invalid1086 query_name: "set operator with static aliased columns and dynamic columns", behavior: "invalid SQL"1087 behaves like invalid SQL1088 is expected to include :invalid1089 query_name: "set operator with static columns and dynamic aliased columns", behavior: "invalid SQL"1090 behaves like invalid SQL1091 is expected to include :invalid1092 query_name: "set operator with static and dynamic aliased columns", behavior: "invalid SQL"1093 behaves like invalid SQL1094 is expected to include :invalid1095 query_name: "set operator with mixed dynamic and static columns", behavior: "valid SQL"1096 behaves like valid SQL1097 is expected not to include :invalid1098 query_name: "set operator without references", behavior: "valid SQL"1099 behaves like valid SQL1100 is expected not to include :invalid1101 select_columns: "sub.*"1102 query_name: "set operator with static columns", behavior: "valid SQL"1103 behaves like valid SQL1104 is expected not to include :invalid1105 query_name: "set operator with static referenced columns", behavior: "valid SQL"1106 behaves like valid SQL1107 is expected not to include :invalid1108 query_name: "set operator with static alias referenced columns", behavior: "valid SQL"1109 behaves like valid SQL1110 is expected not to include :invalid1111 query_name: "set operator with dynamic columns", behavior: "valid SQL"1112 behaves like valid SQL1113 is expected not to include :invalid1114 query_name: "set operator with dynamic referenced columns", behavior: "valid SQL"1115 behaves like valid SQL1116 is expected not to include :invalid1117 query_name: "set operator with dynamic referenced aliased columns", behavior: "valid SQL"1118 behaves like valid SQL1119 is expected not to include :invalid1120 query_name: "set operator with dynamic columns without using star", behavior: "invalid SQL"1121 behaves like invalid SQL1122 is expected to include :invalid1123 query_name: "set operator with single dynamic referenced columns", behavior: "valid SQL"1124 behaves like valid SQL1125 is expected not to include :invalid1126 query_name: "set operator with static and dynamic columns", behavior: "invalid SQL"1127 behaves like invalid SQL1128 is expected to include :invalid1129 query_name: "set operator with static and dynamic aliased columns", behavior: "invalid SQL"1130 behaves like invalid SQL1131 is expected to include :invalid1132 query_name: "set operator with static aliased columns and dynamic columns", behavior: "invalid SQL"1133 behaves like invalid SQL1134 is expected to include :invalid1135 query_name: "set operator with static columns and dynamic aliased columns", behavior: "invalid SQL"1136 behaves like invalid SQL1137 is expected to include :invalid1138 query_name: "set operator with static and dynamic aliased columns", behavior: "invalid SQL"1139 behaves like invalid SQL1140 is expected to include :invalid1141 query_name: "set operator with mixed dynamic and static columns", behavior: "valid SQL"1142 behaves like valid SQL1143 is expected not to include :invalid1144 query_name: "set operator without references", behavior: "valid SQL"1145 behaves like valid SQL1146 is expected not to include :invalid1147 select_columns: "sub"1148 query_name: "set operator with static columns", behavior: "valid SQL"1149 behaves like valid SQL1150 is expected not to include :invalid1151 query_name: "set operator with static referenced columns", behavior: "valid SQL"1152 behaves like valid SQL1153 is expected not to include :invalid1154 query_name: "set operator with static alias referenced columns", behavior: "valid SQL"1155 behaves like valid SQL1156 is expected not to include :invalid1157 query_name: "set operator with dynamic columns", behavior: "valid SQL"1158 behaves like valid SQL1159 is expected not to include :invalid1160 query_name: "set operator with dynamic referenced columns", behavior: "valid SQL"1161 behaves like valid SQL1162 is expected not to include :invalid1163 query_name: "set operator with dynamic referenced aliased columns", behavior: "valid SQL"1164 behaves like valid SQL1165 is expected not to include :invalid1166 query_name: "set operator with dynamic columns without using star", behavior: "invalid SQL"1167 behaves like invalid SQL1168 is expected to include :invalid1169 query_name: "set operator with single dynamic referenced columns", behavior: "valid SQL"1170 behaves like valid SQL1171 is expected not to include :invalid1172 query_name: "set operator with static and dynamic columns", behavior: "invalid SQL"1173 behaves like invalid SQL1174 is expected to include :invalid1175 query_name: "set operator with static and dynamic aliased columns", behavior: "invalid SQL"1176 behaves like invalid SQL1177 is expected to include :invalid1178 query_name: "set operator with static aliased columns and dynamic columns", behavior: "invalid SQL"1179 behaves like invalid SQL1180 is expected to include :invalid1181 query_name: "set operator with static columns and dynamic aliased columns", behavior: "invalid SQL"1182 behaves like invalid SQL1183 is expected to include :invalid1184 query_name: "set operator with static and dynamic aliased columns", behavior: "invalid SQL"1185 behaves like invalid SQL1186 is expected to include :invalid1187 query_name: "set operator with mixed dynamic and static columns", behavior: "valid SQL"1188 behaves like valid SQL1189 is expected not to include :invalid1190 query_name: "set operator without references", behavior: "valid SQL"1191 behaves like valid SQL1192 is expected not to include :invalid1193 select_columns: "sub.id"1194 query_name: "set operator with static columns", behavior: "valid SQL"1195 behaves like valid SQL1196 is expected not to include :invalid1197 query_name: "set operator with static referenced columns", behavior: "valid SQL"1198 behaves like valid SQL1199 is expected not to include :invalid1200 query_name: "set operator with static alias referenced columns", behavior: "valid SQL"1201 behaves like valid SQL1202 is expected not to include :invalid1203 query_name: "set operator with dynamic columns", behavior: "valid SQL"1204 behaves like valid SQL1205 is expected not to include :invalid1206 query_name: "set operator with dynamic referenced columns", behavior: "valid SQL"1207 behaves like valid SQL1208 is expected not to include :invalid1209 query_name: "set operator with dynamic referenced aliased columns", behavior: "valid SQL"1210 behaves like valid SQL1211 is expected not to include :invalid1212 query_name: "set operator with dynamic columns without using star", behavior: "invalid SQL"1213 behaves like invalid SQL1214 is expected to include :invalid1215 query_name: "set operator with single dynamic referenced columns", behavior: "valid SQL"1216 behaves like valid SQL1217 is expected not to include :invalid1218 query_name: "set operator with static and dynamic columns", behavior: "invalid SQL"1219 behaves like invalid SQL1220 is expected to include :invalid1221 query_name: "set operator with static and dynamic aliased columns", behavior: "invalid SQL"1222 behaves like invalid SQL1223 is expected to include :invalid1224 query_name: "set operator with static aliased columns and dynamic columns", behavior: "invalid SQL"1225 behaves like invalid SQL1226 is expected to include :invalid1227 query_name: "set operator with static columns and dynamic aliased columns", behavior: "invalid SQL"1228 behaves like invalid SQL1229 is expected to include :invalid1230 query_name: "set operator with static and dynamic aliased columns", behavior: "invalid SQL"1231 behaves like invalid SQL1232 is expected to include :invalid1233 query_name: "set operator with mixed dynamic and static columns", behavior: "valid SQL"1234 behaves like valid SQL1235 is expected not to include :invalid1236 query_name: "set operator without references", behavior: "valid SQL"1237 behaves like valid SQL1238 is expected not to include :invalid1239 when used by one side of INTERSECT1240 union1: "*", union2: "*", subquery: "*", expected: "valid SQL"1241 behaves like valid SQL1242 is expected not to include :invalid1243 union1: static_namespace_columns, union2: "*", subquery: "*", expected: "invalid SQL"1244 behaves like invalid SQL1245 is expected to include :invalid1246 union1: "*", union2: static_namespace_columns, subquery: "*", expected: "invalid SQL"1247 behaves like invalid SQL1248 is expected to include :invalid1249 union1: "*", union2: "*", subquery: static_namespace_columns, expected: "invalid SQL"1250 behaves like invalid SQL1251 is expected to include :invalid1252 union1: static_namespace_columns, union2: static_namespace_columns, subquery: "*", expected: "valid SQL"1253 behaves like valid SQL1254 is expected not to include :invalid1255 union1: static_namespace_columns, union2: "*", subquery: static_namespace_columns, expected: "invalid SQL"1256 behaves like invalid SQL1257 is expected to include :invalid1258 union1: "*", union2: static_namespace_columns, subquery: static_namespace_columns, expected: "valid SQL"1259 behaves like valid SQL1260 is expected not to include :invalid1261 union1: "namespaces", union2: "namespaces", subquery: "namespaces", expected: "valid SQL"1262 behaves like valid SQL1263 is expected not to include :invalid1264 union1: "NULL :: namespaces", union2: "namespaces", subquery: "id, name", expected: "valid SQL"1265 behaves like valid SQL1266 is expected not to include :invalid1267 union1: "NULL :: namespaces, id, name", union2: "namespaces, id, name", subquery: "namespaces", expected: "valid SQL"1268 behaves like valid SQL1269 is expected not to include :invalid1270 for CTE1271 when INTERSECT1272 select_columns: "*"1273 query_name: "set operator with static columns", behavior: "valid SQL"1274 behaves like valid SQL1275 is expected not to include :invalid1276 query_name: "set operator with static referenced columns", behavior: "valid SQL"1277 behaves like valid SQL1278 is expected not to include :invalid1279 query_name: "set operator with static alias referenced columns", behavior: "valid SQL"1280 behaves like valid SQL1281 is expected not to include :invalid1282 query_name: "set operator with dynamic columns", behavior: "valid SQL"1283 behaves like valid SQL1284 is expected not to include :invalid1285 query_name: "set operator with dynamic referenced columns", behavior: "valid SQL"1286 behaves like valid SQL1287 is expected not to include :invalid1288 query_name: "set operator with dynamic referenced aliased columns", behavior: "valid SQL"1289 behaves like valid SQL1290 is expected not to include :invalid1291 query_name: "set operator with dynamic columns without using star", behavior: "invalid SQL"1292 behaves like invalid SQL1293 is expected to include :invalid1294 query_name: "set operator with single dynamic referenced columns", behavior: "valid SQL"1295 behaves like valid SQL1296 is expected not to include :invalid1297 query_name: "set operator with static and dynamic columns", behavior: "invalid SQL"1298 behaves like invalid SQL1299 is expected to include :invalid1300 query_name: "set operator with static and dynamic aliased columns", behavior: "invalid SQL"1301 behaves like invalid SQL1302 is expected to include :invalid1303 query_name: "set operator with static aliased columns and dynamic columns", behavior: "invalid SQL"1304 behaves like invalid SQL1305 is expected to include :invalid1306 query_name: "set operator with static columns and dynamic aliased columns", behavior: "invalid SQL"1307 behaves like invalid SQL1308 is expected to include :invalid1309 query_name: "set operator with static and dynamic aliased columns", behavior: "invalid SQL"1310 behaves like invalid SQL1311 is expected to include :invalid1312 query_name: "set operator with mixed dynamic and static columns", behavior: "valid SQL"1313 behaves like valid SQL1314 is expected not to include :invalid1315 query_name: "set operator without references", behavior: "valid SQL"1316 behaves like valid SQL1317 is expected not to include :invalid1318 select_columns: "namespaces_cte.*"1319 query_name: "set operator with static columns", behavior: "valid SQL"1320 behaves like valid SQL1321 is expected not to include :invalid1322 query_name: "set operator with static referenced columns", behavior: "valid SQL"1323 behaves like valid SQL1324 is expected not to include :invalid1325 query_name: "set operator with static alias referenced columns", behavior: "valid SQL"1326 behaves like valid SQL1327 is expected not to include :invalid1328 query_name: "set operator with dynamic columns", behavior: "valid SQL"1329 behaves like valid SQL1330 is expected not to include :invalid1331 query_name: "set operator with dynamic referenced columns", behavior: "valid SQL"1332 behaves like valid SQL1333 is expected not to include :invalid1334 query_name: "set operator with dynamic referenced aliased columns", behavior: "valid SQL"1335 behaves like valid SQL1336 is expected not to include :invalid1337 query_name: "set operator with dynamic columns without using star", behavior: "invalid SQL"1338 behaves like invalid SQL1339 is expected to include :invalid1340 query_name: "set operator with single dynamic referenced columns", behavior: "valid SQL"1341 behaves like valid SQL1342 is expected not to include :invalid1343 query_name: "set operator with static and dynamic columns", behavior: "invalid SQL"1344 behaves like invalid SQL1345 is expected to include :invalid1346 query_name: "set operator with static and dynamic aliased columns", behavior: "invalid SQL"1347 behaves like invalid SQL1348 is expected to include :invalid1349 query_name: "set operator with static aliased columns and dynamic columns", behavior: "invalid SQL"1350 behaves like invalid SQL1351 is expected to include :invalid1352 query_name: "set operator with static columns and dynamic aliased columns", behavior: "invalid SQL"1353 behaves like invalid SQL1354 is expected to include :invalid1355 query_name: "set operator with static and dynamic aliased columns", behavior: "invalid SQL"1356 behaves like invalid SQL1357 is expected to include :invalid1358 query_name: "set operator with mixed dynamic and static columns", behavior: "valid SQL"1359 behaves like valid SQL1360 is expected not to include :invalid1361 query_name: "set operator without references", behavior: "valid SQL"1362 behaves like valid SQL1363 is expected not to include :invalid1364 select_columns: "namespaces_cte.id"1365 query_name: "set operator with static columns", behavior: "valid SQL"1366 behaves like valid SQL1367 is expected not to include :invalid1368 query_name: "set operator with static referenced columns", behavior: "valid SQL"1369 behaves like valid SQL1370 is expected not to include :invalid1371 query_name: "set operator with static alias referenced columns", behavior: "valid SQL"1372 behaves like valid SQL1373 is expected not to include :invalid1374 query_name: "set operator with dynamic columns", behavior: "valid SQL"1375 behaves like valid SQL1376 is expected not to include :invalid1377 query_name: "set operator with dynamic referenced columns", behavior: "valid SQL"1378 behaves like valid SQL1379 is expected not to include :invalid1380 query_name: "set operator with dynamic referenced aliased columns", behavior: "valid SQL"1381 behaves like valid SQL1382 is expected not to include :invalid1383 query_name: "set operator with dynamic columns without using star", behavior: "invalid SQL"1384 behaves like invalid SQL1385 is expected to include :invalid1386 query_name: "set operator with single dynamic referenced columns", behavior: "valid SQL"1387 behaves like valid SQL1388 is expected not to include :invalid1389 query_name: "set operator with static and dynamic columns", behavior: "invalid SQL"1390 behaves like invalid SQL1391 is expected to include :invalid1392 query_name: "set operator with static and dynamic aliased columns", behavior: "invalid SQL"1393 behaves like invalid SQL1394 is expected to include :invalid1395 query_name: "set operator with static aliased columns and dynamic columns", behavior: "invalid SQL"1396 behaves like invalid SQL1397 is expected to include :invalid1398 query_name: "set operator with static columns and dynamic aliased columns", behavior: "invalid SQL"1399 behaves like invalid SQL1400 is expected to include :invalid1401 query_name: "set operator with static and dynamic aliased columns", behavior: "invalid SQL"1402 behaves like invalid SQL1403 is expected to include :invalid1404 query_name: "set operator with mixed dynamic and static columns", behavior: "valid SQL"1405 behaves like valid SQL1406 is expected not to include :invalid1407 query_name: "set operator without references", behavior: "valid SQL"1408 behaves like valid SQL1409 is expected not to include :invalid1410 when used by one side of INTERSECT1411 cte_select_columns: "*", select_columns: "*", cte_name: "some_cte", expected: "valid SQL"1412 behaves like valid SQL1413 is expected not to include :invalid1414 cte_select_columns: static_namespace_columns, select_columns: "*", cte_name: "some_cte", expected: "invalid SQL"1415 behaves like invalid SQL1416 is expected to include :invalid1417 cte_select_columns: "*", select_columns: static_namespace_columns, cte_name: "some_cte", expected: "invalid SQL"1418 behaves like invalid SQL1419 is expected to include :invalid1420 cte_select_columns: static_namespace_columns, select_columns: static_namespace_columns, cte_name: "some_cte", expected: "invalid SQL"1421 behaves like invalid SQL1422 is expected to include :invalid1423 cte_select_columns: "*", select_columns: "*", cte_name: "some_cte", expected: "valid SQL"1424 behaves like valid SQL1425 is expected not to include :invalid1426 cte_select_columns: "*", select_columns: "*", cte_name: "namespaces", expected: "valid SQL"1427 behaves like valid SQL1428 is expected not to include :invalid1429 cte_select_columns: static_namespace_columns, select_columns: "*", cte_name: "namespaces", expected: "valid SQL"1430 behaves like valid SQL1431 is expected not to include :invalid1432 cte_select_columns: "*", select_columns: static_namespace_columns, cte_name: "namespaces", expected: "invalid SQL"1433 behaves like invalid SQL1434 is expected to include :invalid1435 cte_select_columns: static_namespace_columns, select_columns: static_namespace_columns, cte_name: "namespaces", expected: "valid SQL"1436 behaves like valid SQL1437 is expected not to include :invalid1438 cte_select_columns: "*", select_columns: "*", cte_name: "namespaces", expected: "valid SQL"1439 behaves like valid SQL1440 is expected not to include :invalid1441 when recursive1442 select1: "id", select2: "id", expected: "valid SQL"1443 behaves like valid SQL1444 is expected not to include :invalid1445 select1: static_namespace_columns, select2: "*", expected: "valid SQL"1446 behaves like valid SQL1447 is expected not to include :invalid1448 select1: "*", select2: static_namespace_columns, expected: "invalid SQL"1449 behaves like invalid SQL1450 is expected to include :invalid1451 for subselect1452 with set operator1453 behaves like valid SQL1454 is expected not to include :invalid1455 with lateral join1456 example at ./spec/lib/gitlab/database/query_analyzers/prevent_set_operator_mismatch/select_stmt_spec.rb:340 (PENDING: Not yet implemented)1457 with UNION1458 for basic UNION queries1459 query_name: "set operator with static columns", behavior: "valid SQL"1460 behaves like valid SQL1461 is expected not to include :invalid1462 query_name: "set operator with static referenced columns", behavior: "valid SQL"1463 behaves like valid SQL1464 is expected not to include :invalid1465 query_name: "set operator with static alias referenced columns", behavior: "valid SQL"1466 behaves like valid SQL1467 is expected not to include :invalid1468 query_name: "set operator with dynamic columns", behavior: "valid SQL"1469 behaves like valid SQL1470 is expected not to include :invalid1471 query_name: "set operator with dynamic referenced columns", behavior: "valid SQL"1472 behaves like valid SQL1473 is expected not to include :invalid1474 query_name: "set operator with dynamic referenced aliased columns", behavior: "valid SQL"1475 behaves like valid SQL1476 is expected not to include :invalid1477 query_name: "set operator with dynamic columns without using star", behavior: "invalid SQL"1478 behaves like invalid SQL1479 is expected to include :invalid1480 query_name: "set operator with single dynamic referenced columns", behavior: "valid SQL"1481 behaves like valid SQL1482 is expected not to include :invalid1483 query_name: "set operator with static and dynamic columns", behavior: "invalid SQL"1484 behaves like invalid SQL1485 is expected to include :invalid1486 query_name: "set operator with static and dynamic aliased columns", behavior: "invalid SQL"1487 behaves like invalid SQL1488 is expected to include :invalid1489 query_name: "set operator with static aliased columns and dynamic columns", behavior: "invalid SQL"1490 behaves like invalid SQL1491 is expected to include :invalid1492 query_name: "set operator with static columns and dynamic aliased columns", behavior: "invalid SQL"1493 behaves like invalid SQL1494 is expected to include :invalid1495 query_name: "set operator with static and dynamic aliased columns", behavior: "invalid SQL"1496 behaves like invalid SQL1497 is expected to include :invalid1498 query_name: "set operator with mixed dynamic and static columns", behavior: "valid SQL"1499 behaves like valid SQL1500 is expected not to include :invalid1501 query_name: "set operator without references", behavior: "valid SQL"1502 behaves like valid SQL1503 is expected not to include :invalid1504 for subquery1505 with UNION1506 select_columns: "*"1507 query_name: "set operator with static columns", behavior: "valid SQL"1508 behaves like valid SQL1509 is expected not to include :invalid1510 query_name: "set operator with static referenced columns", behavior: "valid SQL"1511 behaves like valid SQL1512 is expected not to include :invalid1513 query_name: "set operator with static alias referenced columns", behavior: "valid SQL"1514 behaves like valid SQL1515 is expected not to include :invalid1516 query_name: "set operator with dynamic columns", behavior: "valid SQL"1517 behaves like valid SQL1518 is expected not to include :invalid1519 query_name: "set operator with dynamic referenced columns", behavior: "valid SQL"1520 behaves like valid SQL1521 is expected not to include :invalid1522 query_name: "set operator with dynamic referenced aliased columns", behavior: "valid SQL"1523 behaves like valid SQL1524 is expected not to include :invalid1525 query_name: "set operator with dynamic columns without using star", behavior: "invalid SQL"1526 behaves like invalid SQL1527 is expected to include :invalid1528 query_name: "set operator with single dynamic referenced columns", behavior: "valid SQL"1529 behaves like valid SQL1530 is expected not to include :invalid1531 query_name: "set operator with static and dynamic columns", behavior: "invalid SQL"1532 behaves like invalid SQL1533 is expected to include :invalid1534 query_name: "set operator with static and dynamic aliased columns", behavior: "invalid SQL"1535 behaves like invalid SQL1536 is expected to include :invalid1537 query_name: "set operator with static aliased columns and dynamic columns", behavior: "invalid SQL"1538 behaves like invalid SQL1539 is expected to include :invalid1540 query_name: "set operator with static columns and dynamic aliased columns", behavior: "invalid SQL"1541 behaves like invalid SQL1542 is expected to include :invalid1543 query_name: "set operator with static and dynamic aliased columns", behavior: "invalid SQL"1544 behaves like invalid SQL1545 is expected to include :invalid1546 query_name: "set operator with mixed dynamic and static columns", behavior: "valid SQL"1547 behaves like valid SQL1548 is expected not to include :invalid1549 query_name: "set operator without references", behavior: "valid SQL"1550 behaves like valid SQL1551 is expected not to include :invalid1552 select_columns: "sub.*"1553 query_name: "set operator with static columns", behavior: "valid SQL"1554 behaves like valid SQL1555 is expected not to include :invalid1556 query_name: "set operator with static referenced columns", behavior: "valid SQL"1557 behaves like valid SQL1558 is expected not to include :invalid1559 query_name: "set operator with static alias referenced columns", behavior: "valid SQL"1560 behaves like valid SQL1561 is expected not to include :invalid1562 query_name: "set operator with dynamic columns", behavior: "valid SQL"1563 behaves like valid SQL1564 is expected not to include :invalid1565 query_name: "set operator with dynamic referenced columns", behavior: "valid SQL"1566 behaves like valid SQL1567 is expected not to include :invalid1568 query_name: "set operator with dynamic referenced aliased columns", behavior: "valid SQL"1569 behaves like valid SQL1570 is expected not to include :invalid1571 query_name: "set operator with dynamic columns without using star", behavior: "invalid SQL"1572 behaves like invalid SQL1573 is expected to include :invalid1574 query_name: "set operator with single dynamic referenced columns", behavior: "valid SQL"1575 behaves like valid SQL1576 is expected not to include :invalid1577 query_name: "set operator with static and dynamic columns", behavior: "invalid SQL"1578 behaves like invalid SQL1579 is expected to include :invalid1580 query_name: "set operator with static and dynamic aliased columns", behavior: "invalid SQL"1581 behaves like invalid SQL1582 is expected to include :invalid1583 query_name: "set operator with static aliased columns and dynamic columns", behavior: "invalid SQL"1584 behaves like invalid SQL1585 is expected to include :invalid1586 query_name: "set operator with static columns and dynamic aliased columns", behavior: "invalid SQL"1587 behaves like invalid SQL1588 is expected to include :invalid1589 query_name: "set operator with static and dynamic aliased columns", behavior: "invalid SQL"1590 behaves like invalid SQL1591 is expected to include :invalid1592 query_name: "set operator with mixed dynamic and static columns", behavior: "valid SQL"1593 behaves like valid SQL1594 is expected not to include :invalid1595 query_name: "set operator without references", behavior: "valid SQL"1596 behaves like valid SQL1597 is expected not to include :invalid1598 select_columns: "sub"1599 query_name: "set operator with static columns", behavior: "valid SQL"1600 behaves like valid SQL1601 is expected not to include :invalid1602 query_name: "set operator with static referenced columns", behavior: "valid SQL"1603 behaves like valid SQL1604 is expected not to include :invalid1605 query_name: "set operator with static alias referenced columns", behavior: "valid SQL"1606 behaves like valid SQL1607 is expected not to include :invalid1608 query_name: "set operator with dynamic columns", behavior: "valid SQL"1609 behaves like valid SQL1610 is expected not to include :invalid1611 query_name: "set operator with dynamic referenced columns", behavior: "valid SQL"1612 behaves like valid SQL1613 is expected not to include :invalid1614 query_name: "set operator with dynamic referenced aliased columns", behavior: "valid SQL"1615 behaves like valid SQL1616 is expected not to include :invalid1617 query_name: "set operator with dynamic columns without using star", behavior: "invalid SQL"1618 behaves like invalid SQL1619 is expected to include :invalid1620 query_name: "set operator with single dynamic referenced columns", behavior: "valid SQL"1621 behaves like valid SQL1622 is expected not to include :invalid1623 query_name: "set operator with static and dynamic columns", behavior: "invalid SQL"1624 behaves like invalid SQL1625 is expected to include :invalid1626 query_name: "set operator with static and dynamic aliased columns", behavior: "invalid SQL"1627 behaves like invalid SQL1628 is expected to include :invalid1629 query_name: "set operator with static aliased columns and dynamic columns", behavior: "invalid SQL"1630 behaves like invalid SQL1631 is expected to include :invalid1632 query_name: "set operator with static columns and dynamic aliased columns", behavior: "invalid SQL"1633 behaves like invalid SQL1634 is expected to include :invalid1635 query_name: "set operator with static and dynamic aliased columns", behavior: "invalid SQL"1636 behaves like invalid SQL1637 is expected to include :invalid1638 query_name: "set operator with mixed dynamic and static columns", behavior: "valid SQL"1639 behaves like valid SQL1640 is expected not to include :invalid1641 query_name: "set operator without references", behavior: "valid SQL"1642 behaves like valid SQL1643 is expected not to include :invalid1644 select_columns: "sub.id"1645 query_name: "set operator with static columns", behavior: "valid SQL"1646 behaves like valid SQL1647 is expected not to include :invalid1648 query_name: "set operator with static referenced columns", behavior: "valid SQL"1649 behaves like valid SQL1650 is expected not to include :invalid1651 query_name: "set operator with static alias referenced columns", behavior: "valid SQL"1652 behaves like valid SQL1653 is expected not to include :invalid1654 query_name: "set operator with dynamic columns", behavior: "valid SQL"1655 behaves like valid SQL1656 is expected not to include :invalid1657 query_name: "set operator with dynamic referenced columns", behavior: "valid SQL"1658 behaves like valid SQL1659 is expected not to include :invalid1660 query_name: "set operator with dynamic referenced aliased columns", behavior: "valid SQL"1661 behaves like valid SQL1662 is expected not to include :invalid1663 query_name: "set operator with dynamic columns without using star", behavior: "invalid SQL"1664 behaves like invalid SQL1665 is expected to include :invalid1666 query_name: "set operator with single dynamic referenced columns", behavior: "valid SQL"1667 behaves like valid SQL1668 is expected not to include :invalid1669 query_name: "set operator with static and dynamic columns", behavior: "invalid SQL"1670 behaves like invalid SQL1671 is expected to include :invalid1672 query_name: "set operator with static and dynamic aliased columns", behavior: "invalid SQL"1673 behaves like invalid SQL1674 is expected to include :invalid1675 query_name: "set operator with static aliased columns and dynamic columns", behavior: "invalid SQL"1676 behaves like invalid SQL1677 is expected to include :invalid1678 query_name: "set operator with static columns and dynamic aliased columns", behavior: "invalid SQL"1679 behaves like invalid SQL1680 is expected to include :invalid1681 query_name: "set operator with static and dynamic aliased columns", behavior: "invalid SQL"1682 behaves like invalid SQL1683 is expected to include :invalid1684 query_name: "set operator with mixed dynamic and static columns", behavior: "valid SQL"1685 behaves like valid SQL1686 is expected not to include :invalid1687 query_name: "set operator without references", behavior: "valid SQL"1688 behaves like valid SQL1689 is expected not to include :invalid1690 when used by one side of UNION1691 union1: "*", union2: "*", subquery: "*", expected: "valid SQL"1692 behaves like valid SQL1693 is expected not to include :invalid1694 union1: static_namespace_columns, union2: "*", subquery: "*", expected: "invalid SQL"1695 behaves like invalid SQL1696 is expected to include :invalid1697 union1: "*", union2: static_namespace_columns, subquery: "*", expected: "invalid SQL"1698 behaves like invalid SQL1699 is expected to include :invalid1700 union1: "*", union2: "*", subquery: static_namespace_columns, expected: "invalid SQL"1701 behaves like invalid SQL1702 is expected to include :invalid1703 union1: static_namespace_columns, union2: static_namespace_columns, subquery: "*", expected: "valid SQL"1704 behaves like valid SQL1705 is expected not to include :invalid1706 union1: static_namespace_columns, union2: "*", subquery: static_namespace_columns, expected: "invalid SQL"1707 behaves like invalid SQL1708 is expected to include :invalid1709 union1: "*", union2: static_namespace_columns, subquery: static_namespace_columns, expected: "valid SQL"1710 behaves like valid SQL1711 is expected not to include :invalid1712 union1: "namespaces", union2: "namespaces", subquery: "namespaces", expected: "valid SQL"1713 behaves like valid SQL1714 is expected not to include :invalid1715 union1: "NULL :: namespaces", union2: "namespaces", subquery: "id, name", expected: "valid SQL"1716 behaves like valid SQL1717 is expected not to include :invalid1718 union1: "NULL :: namespaces, id, name", union2: "namespaces, id, name", subquery: "namespaces", expected: "valid SQL"1719 behaves like valid SQL1720 is expected not to include :invalid1721 for CTE1722 when UNION1723 select_columns: "*"1724 query_name: "set operator with static columns", behavior: "valid SQL"1725 behaves like valid SQL1726 is expected not to include :invalid1727 query_name: "set operator with static referenced columns", behavior: "valid SQL"1728 behaves like valid SQL1729 is expected not to include :invalid1730 query_name: "set operator with static alias referenced columns", behavior: "valid SQL"1731 behaves like valid SQL1732 is expected not to include :invalid1733 query_name: "set operator with dynamic columns", behavior: "valid SQL"1734 behaves like valid SQL1735 is expected not to include :invalid1736 query_name: "set operator with dynamic referenced columns", behavior: "valid SQL"1737 behaves like valid SQL1738 is expected not to include :invalid1739 query_name: "set operator with dynamic referenced aliased columns", behavior: "valid SQL"1740 behaves like valid SQL1741 is expected not to include :invalid1742 query_name: "set operator with dynamic columns without using star", behavior: "invalid SQL"1743 behaves like invalid SQL1744 is expected to include :invalid1745 query_name: "set operator with single dynamic referenced columns", behavior: "valid SQL"1746 behaves like valid SQL1747 is expected not to include :invalid1748 query_name: "set operator with static and dynamic columns", behavior: "invalid SQL"1749 behaves like invalid SQL1750 is expected to include :invalid1751 query_name: "set operator with static and dynamic aliased columns", behavior: "invalid SQL"1752 behaves like invalid SQL1753 is expected to include :invalid1754 query_name: "set operator with static aliased columns and dynamic columns", behavior: "invalid SQL"1755 behaves like invalid SQL1756 is expected to include :invalid1757 query_name: "set operator with static columns and dynamic aliased columns", behavior: "invalid SQL"1758 behaves like invalid SQL1759 is expected to include :invalid1760 query_name: "set operator with static and dynamic aliased columns", behavior: "invalid SQL"1761 behaves like invalid SQL1762 is expected to include :invalid1763 query_name: "set operator with mixed dynamic and static columns", behavior: "valid SQL"1764 behaves like valid SQL1765 is expected not to include :invalid1766 query_name: "set operator without references", behavior: "valid SQL"1767 behaves like valid SQL1768 is expected not to include :invalid1769 select_columns: "namespaces_cte.*"1770 query_name: "set operator with static columns", behavior: "valid SQL"1771 behaves like valid SQL1772 is expected not to include :invalid1773 query_name: "set operator with static referenced columns", behavior: "valid SQL"1774 behaves like valid SQL1775 is expected not to include :invalid1776 query_name: "set operator with static alias referenced columns", behavior: "valid SQL"1777 behaves like valid SQL1778 is expected not to include :invalid1779 query_name: "set operator with dynamic columns", behavior: "valid SQL"1780 behaves like valid SQL1781 is expected not to include :invalid1782 query_name: "set operator with dynamic referenced columns", behavior: "valid SQL"1783 behaves like valid SQL1784 is expected not to include :invalid1785 query_name: "set operator with dynamic referenced aliased columns", behavior: "valid SQL"1786 behaves like valid SQL1787 is expected not to include :invalid1788 query_name: "set operator with dynamic columns without using star", behavior: "invalid SQL"1789 behaves like invalid SQL1790 is expected to include :invalid1791 query_name: "set operator with single dynamic referenced columns", behavior: "valid SQL"1792 behaves like valid SQL1793 is expected not to include :invalid1794 query_name: "set operator with static and dynamic columns", behavior: "invalid SQL"1795 behaves like invalid SQL1796 is expected to include :invalid1797 query_name: "set operator with static and dynamic aliased columns", behavior: "invalid SQL"1798 behaves like invalid SQL1799 is expected to include :invalid1800 query_name: "set operator with static aliased columns and dynamic columns", behavior: "invalid SQL"1801 behaves like invalid SQL1802 is expected to include :invalid1803 query_name: "set operator with static columns and dynamic aliased columns", behavior: "invalid SQL"1804 behaves like invalid SQL1805 is expected to include :invalid1806 query_name: "set operator with static and dynamic aliased columns", behavior: "invalid SQL"1807 behaves like invalid SQL1808 is expected to include :invalid1809 query_name: "set operator with mixed dynamic and static columns", behavior: "valid SQL"1810 behaves like valid SQL1811 is expected not to include :invalid1812 query_name: "set operator without references", behavior: "valid SQL"1813 behaves like valid SQL1814 is expected not to include :invalid1815 select_columns: "namespaces_cte.id"1816 query_name: "set operator with static columns", behavior: "valid SQL"1817 behaves like valid SQL1818 is expected not to include :invalid1819 query_name: "set operator with static referenced columns", behavior: "valid SQL"1820 behaves like valid SQL1821 is expected not to include :invalid1822 query_name: "set operator with static alias referenced columns", behavior: "valid SQL"1823 behaves like valid SQL1824 is expected not to include :invalid1825 query_name: "set operator with dynamic columns", behavior: "valid SQL"1826 behaves like valid SQL1827 is expected not to include :invalid1828 query_name: "set operator with dynamic referenced columns", behavior: "valid SQL"1829 behaves like valid SQL1830 is expected not to include :invalid1831 query_name: "set operator with dynamic referenced aliased columns", behavior: "valid SQL"1832 behaves like valid SQL1833 is expected not to include :invalid1834 query_name: "set operator with dynamic columns without using star", behavior: "invalid SQL"1835 behaves like invalid SQL1836 is expected to include :invalid1837 query_name: "set operator with single dynamic referenced columns", behavior: "valid SQL"1838 behaves like valid SQL1839 is expected not to include :invalid1840 query_name: "set operator with static and dynamic columns", behavior: "invalid SQL"1841 behaves like invalid SQL1842 is expected to include :invalid1843 query_name: "set operator with static and dynamic aliased columns", behavior: "invalid SQL"1844 behaves like invalid SQL1845 is expected to include :invalid1846 query_name: "set operator with static aliased columns and dynamic columns", behavior: "invalid SQL"1847 behaves like invalid SQL1848 is expected to include :invalid1849 query_name: "set operator with static columns and dynamic aliased columns", behavior: "invalid SQL"1850 behaves like invalid SQL1851 is expected to include :invalid1852 query_name: "set operator with static and dynamic aliased columns", behavior: "invalid SQL"1853 behaves like invalid SQL1854 is expected to include :invalid1855 query_name: "set operator with mixed dynamic and static columns", behavior: "valid SQL"1856 behaves like valid SQL1857 is expected not to include :invalid1858 query_name: "set operator without references", behavior: "valid SQL"1859 behaves like valid SQL1860 is expected not to include :invalid1861 when used by one side of UNION1862 cte_select_columns: "*", select_columns: "*", cte_name: "some_cte", expected: "valid SQL"1863 behaves like valid SQL1864 is expected not to include :invalid1865 cte_select_columns: static_namespace_columns, select_columns: "*", cte_name: "some_cte", expected: "invalid SQL"1866 behaves like invalid SQL1867 is expected to include :invalid1868 cte_select_columns: "*", select_columns: static_namespace_columns, cte_name: "some_cte", expected: "invalid SQL"1869 behaves like invalid SQL1870 is expected to include :invalid1871 cte_select_columns: static_namespace_columns, select_columns: static_namespace_columns, cte_name: "some_cte", expected: "invalid SQL"1872 behaves like invalid SQL1873 is expected to include :invalid1874 cte_select_columns: "*", select_columns: "*", cte_name: "some_cte", expected: "valid SQL"1875 behaves like valid SQL1876 is expected not to include :invalid1877 cte_select_columns: "*", select_columns: "*", cte_name: "namespaces", expected: "valid SQL"1878 behaves like valid SQL1879 is expected not to include :invalid1880 cte_select_columns: static_namespace_columns, select_columns: "*", cte_name: "namespaces", expected: "valid SQL"1881 behaves like valid SQL1882 is expected not to include :invalid1883 cte_select_columns: "*", select_columns: static_namespace_columns, cte_name: "namespaces", expected: "invalid SQL"1884 behaves like invalid SQL1885 is expected to include :invalid1886 cte_select_columns: static_namespace_columns, select_columns: static_namespace_columns, cte_name: "namespaces", expected: "valid SQL"1887 behaves like valid SQL1888 is expected not to include :invalid1889 cte_select_columns: "*", select_columns: "*", cte_name: "namespaces", expected: "valid SQL"1890 behaves like valid SQL1891 is expected not to include :invalid1892 when recursive1893 select1: "id", select2: "id", expected: "valid SQL"1894 behaves like valid SQL1895 is expected not to include :invalid1896 select1: static_namespace_columns, select2: "*", expected: "valid SQL"1897 behaves like valid SQL1898 is expected not to include :invalid1899 select1: "*", select2: static_namespace_columns, expected: "invalid SQL"1900 behaves like invalid SQL1901 is expected to include :invalid1902 for subselect1903 with set operator1904 behaves like valid SQL1905 is expected not to include :invalid1906 with EXCEPT1907 for basic EXCEPT queries1908 query_name: "set operator with static columns", behavior: "valid SQL"1909 behaves like valid SQL1910 is expected not to include :invalid1911 query_name: "set operator with static referenced columns", behavior: "valid SQL"1912 behaves like valid SQL1913 is expected not to include :invalid1914 query_name: "set operator with static alias referenced columns", behavior: "valid SQL"1915 behaves like valid SQL1916 is expected not to include :invalid1917 query_name: "set operator with dynamic columns", behavior: "valid SQL"1918 behaves like valid SQL1919 is expected not to include :invalid1920 query_name: "set operator with dynamic referenced columns", behavior: "valid SQL"1921 behaves like valid SQL1922 is expected not to include :invalid1923 query_name: "set operator with dynamic referenced aliased columns", behavior: "valid SQL"1924 behaves like valid SQL1925 is expected not to include :invalid1926 query_name: "set operator with dynamic columns without using star", behavior: "invalid SQL"1927 behaves like invalid SQL1928 is expected to include :invalid1929 query_name: "set operator with single dynamic referenced columns", behavior: "valid SQL"1930 behaves like valid SQL1931 is expected not to include :invalid1932 query_name: "set operator with static and dynamic columns", behavior: "invalid SQL"1933 behaves like invalid SQL1934 is expected to include :invalid1935 query_name: "set operator with static and dynamic aliased columns", behavior: "invalid SQL"1936 behaves like invalid SQL1937 is expected to include :invalid1938 query_name: "set operator with static aliased columns and dynamic columns", behavior: "invalid SQL"1939 behaves like invalid SQL1940 is expected to include :invalid1941 query_name: "set operator with static columns and dynamic aliased columns", behavior: "invalid SQL"1942 behaves like invalid SQL1943 is expected to include :invalid1944 query_name: "set operator with static and dynamic aliased columns", behavior: "invalid SQL"1945 behaves like invalid SQL1946 is expected to include :invalid1947 query_name: "set operator with mixed dynamic and static columns", behavior: "valid SQL"1948 behaves like valid SQL1949 is expected not to include :invalid1950 query_name: "set operator without references", behavior: "valid SQL"1951 behaves like valid SQL1952 is expected not to include :invalid1953 for subquery1954 with EXCEPT1955 select_columns: "*"1956 query_name: "set operator with static columns", behavior: "valid SQL"1957 behaves like valid SQL1958 is expected not to include :invalid1959 query_name: "set operator with static referenced columns", behavior: "valid SQL"1960 behaves like valid SQL1961 is expected not to include :invalid1962 query_name: "set operator with static alias referenced columns", behavior: "valid SQL"1963 behaves like valid SQL1964 is expected not to include :invalid1965 query_name: "set operator with dynamic columns", behavior: "valid SQL"1966 behaves like valid SQL1967 is expected not to include :invalid1968 query_name: "set operator with dynamic referenced columns", behavior: "valid SQL"1969 behaves like valid SQL1970 is expected not to include :invalid1971 query_name: "set operator with dynamic referenced aliased columns", behavior: "valid SQL"1972 behaves like valid SQL1973 is expected not to include :invalid1974 query_name: "set operator with dynamic columns without using star", behavior: "invalid SQL"1975 behaves like invalid SQL1976 is expected to include :invalid1977 query_name: "set operator with single dynamic referenced columns", behavior: "valid SQL"1978 behaves like valid SQL1979 is expected not to include :invalid1980 query_name: "set operator with static and dynamic columns", behavior: "invalid SQL"1981 behaves like invalid SQL1982 is expected to include :invalid1983 query_name: "set operator with static and dynamic aliased columns", behavior: "invalid SQL"1984 behaves like invalid SQL1985 is expected to include :invalid1986 query_name: "set operator with static aliased columns and dynamic columns", behavior: "invalid SQL"1987 behaves like invalid SQL1988 is expected to include :invalid1989 query_name: "set operator with static columns and dynamic aliased columns", behavior: "invalid SQL"1990 behaves like invalid SQL1991 is expected to include :invalid1992 query_name: "set operator with static and dynamic aliased columns", behavior: "invalid SQL"1993 behaves like invalid SQL1994 is expected to include :invalid1995 query_name: "set operator with mixed dynamic and static columns", behavior: "valid SQL"1996 behaves like valid SQL1997 is expected not to include :invalid1998 query_name: "set operator without references", behavior: "valid SQL"1999 behaves like valid SQL2000 is expected not to include :invalid2001 select_columns: "sub.*"2002 query_name: "set operator with static columns", behavior: "valid SQL"2003 behaves like valid SQL2004 is expected not to include :invalid2005 query_name: "set operator with static referenced columns", behavior: "valid SQL"2006 behaves like valid SQL2007 is expected not to include :invalid2008 query_name: "set operator with static alias referenced columns", behavior: "valid SQL"2009 behaves like valid SQL2010 is expected not to include :invalid2011 query_name: "set operator with dynamic columns", behavior: "valid SQL"2012 behaves like valid SQL2013 is expected not to include :invalid2014 query_name: "set operator with dynamic referenced columns", behavior: "valid SQL"2015 behaves like valid SQL2016 is expected not to include :invalid2017 query_name: "set operator with dynamic referenced aliased columns", behavior: "valid SQL"2018 behaves like valid SQL2019 is expected not to include :invalid2020 query_name: "set operator with dynamic columns without using star", behavior: "invalid SQL"2021 behaves like invalid SQL2022 is expected to include :invalid2023 query_name: "set operator with single dynamic referenced columns", behavior: "valid SQL"2024 behaves like valid SQL2025 is expected not to include :invalid2026 query_name: "set operator with static and dynamic columns", behavior: "invalid SQL"2027 behaves like invalid SQL2028 is expected to include :invalid2029 query_name: "set operator with static and dynamic aliased columns", behavior: "invalid SQL"2030 behaves like invalid SQL2031 is expected to include :invalid2032 query_name: "set operator with static aliased columns and dynamic columns", behavior: "invalid SQL"2033 behaves like invalid SQL2034 is expected to include :invalid2035 query_name: "set operator with static columns and dynamic aliased columns", behavior: "invalid SQL"2036 behaves like invalid SQL2037 is expected to include :invalid2038 query_name: "set operator with static and dynamic aliased columns", behavior: "invalid SQL"2039 behaves like invalid SQL2040 is expected to include :invalid2041 query_name: "set operator with mixed dynamic and static columns", behavior: "valid SQL"2042 behaves like valid SQL2043 is expected not to include :invalid2044 query_name: "set operator without references", behavior: "valid SQL"2045 behaves like valid SQL2046 is expected not to include :invalid2047 select_columns: "sub"2048 query_name: "set operator with static columns", behavior: "valid SQL"2049 behaves like valid SQL2050 is expected not to include :invalid2051 query_name: "set operator with static referenced columns", behavior: "valid SQL"2052 behaves like valid SQL2053 is expected not to include :invalid2054 query_name: "set operator with static alias referenced columns", behavior: "valid SQL"2055 behaves like valid SQL2056 is expected not to include :invalid2057 query_name: "set operator with dynamic columns", behavior: "valid SQL"2058 behaves like valid SQL2059 is expected not to include :invalid2060 query_name: "set operator with dynamic referenced columns", behavior: "valid SQL"2061 behaves like valid SQL2062 is expected not to include :invalid2063 query_name: "set operator with dynamic referenced aliased columns", behavior: "valid SQL"2064 behaves like valid SQL2065 is expected not to include :invalid2066 query_name: "set operator with dynamic columns without using star", behavior: "invalid SQL"2067 behaves like invalid SQL2068 is expected to include :invalid2069 query_name: "set operator with single dynamic referenced columns", behavior: "valid SQL"2070 behaves like valid SQL2071 is expected not to include :invalid2072 query_name: "set operator with static and dynamic columns", behavior: "invalid SQL"2073 behaves like invalid SQL2074 is expected to include :invalid2075 query_name: "set operator with static and dynamic aliased columns", behavior: "invalid SQL"2076 behaves like invalid SQL2077 is expected to include :invalid2078 query_name: "set operator with static aliased columns and dynamic columns", behavior: "invalid SQL"2079 behaves like invalid SQL2080 is expected to include :invalid2081 query_name: "set operator with static columns and dynamic aliased columns", behavior: "invalid SQL"2082 behaves like invalid SQL2083 is expected to include :invalid2084 query_name: "set operator with static and dynamic aliased columns", behavior: "invalid SQL"2085 behaves like invalid SQL2086 is expected to include :invalid2087 query_name: "set operator with mixed dynamic and static columns", behavior: "valid SQL"2088 behaves like valid SQL2089 is expected not to include :invalid2090 query_name: "set operator without references", behavior: "valid SQL"2091 behaves like valid SQL2092 is expected not to include :invalid2093 select_columns: "sub.id"2094 query_name: "set operator with static columns", behavior: "valid SQL"2095 behaves like valid SQL2096 is expected not to include :invalid2097 query_name: "set operator with static referenced columns", behavior: "valid SQL"2098 behaves like valid SQL2099 is expected not to include :invalid2100 query_name: "set operator with static alias referenced columns", behavior: "valid SQL"2101 behaves like valid SQL2102 is expected not to include :invalid2103 query_name: "set operator with dynamic columns", behavior: "valid SQL"2104 behaves like valid SQL2105 is expected not to include :invalid2106 query_name: "set operator with dynamic referenced columns", behavior: "valid SQL"2107 behaves like valid SQL2108 is expected not to include :invalid2109 query_name: "set operator with dynamic referenced aliased columns", behavior: "valid SQL"2110 behaves like valid SQL2111 is expected not to include :invalid2112 query_name: "set operator with dynamic columns without using star", behavior: "invalid SQL"2113 behaves like invalid SQL2114 is expected to include :invalid2115 query_name: "set operator with single dynamic referenced columns", behavior: "valid SQL"2116 behaves like valid SQL2117 is expected not to include :invalid2118 query_name: "set operator with static and dynamic columns", behavior: "invalid SQL"2119 behaves like invalid SQL2120 is expected to include :invalid2121 query_name: "set operator with static and dynamic aliased columns", behavior: "invalid SQL"2122 behaves like invalid SQL2123 is expected to include :invalid2124 query_name: "set operator with static aliased columns and dynamic columns", behavior: "invalid SQL"2125 behaves like invalid SQL2126 is expected to include :invalid2127 query_name: "set operator with static columns and dynamic aliased columns", behavior: "invalid SQL"2128 behaves like invalid SQL2129 is expected to include :invalid2130 query_name: "set operator with static and dynamic aliased columns", behavior: "invalid SQL"2131 behaves like invalid SQL2132 is expected to include :invalid2133 query_name: "set operator with mixed dynamic and static columns", behavior: "valid SQL"2134 behaves like valid SQL2135 is expected not to include :invalid2136 query_name: "set operator without references", behavior: "valid SQL"2137 behaves like valid SQL2138 is expected not to include :invalid2139 when used by one side of EXCEPT2140 union1: "*", union2: "*", subquery: "*", expected: "valid SQL"2141 behaves like valid SQL2142 is expected not to include :invalid2143 union1: static_namespace_columns, union2: "*", subquery: "*", expected: "invalid SQL"2144 behaves like invalid SQL2145 is expected to include :invalid2146 union1: "*", union2: static_namespace_columns, subquery: "*", expected: "invalid SQL"2147 behaves like invalid SQL2148 is expected to include :invalid2149 union1: "*", union2: "*", subquery: static_namespace_columns, expected: "invalid SQL"2150 behaves like invalid SQL2151 is expected to include :invalid2152 union1: static_namespace_columns, union2: static_namespace_columns, subquery: "*", expected: "valid SQL"2153 behaves like valid SQL2154 is expected not to include :invalid2155 union1: static_namespace_columns, union2: "*", subquery: static_namespace_columns, expected: "invalid SQL"2156 behaves like invalid SQL2157 is expected to include :invalid2158 union1: "*", union2: static_namespace_columns, subquery: static_namespace_columns, expected: "valid SQL"2159 behaves like valid SQL2160 is expected not to include :invalid2161 union1: "namespaces", union2: "namespaces", subquery: "namespaces", expected: "valid SQL"2162 behaves like valid SQL2163 is expected not to include :invalid2164 union1: "NULL :: namespaces", union2: "namespaces", subquery: "id, name", expected: "valid SQL"2165 behaves like valid SQL2166 is expected not to include :invalid2167 union1: "NULL :: namespaces, id, name", union2: "namespaces, id, name", subquery: "namespaces", expected: "valid SQL"2168 behaves like valid SQL2169 is expected not to include :invalid2170 for CTE2171 when EXCEPT2172 select_columns: "*"2173 query_name: "set operator with static columns", behavior: "valid SQL"2174 behaves like valid SQL2175 is expected not to include :invalid2176 query_name: "set operator with static referenced columns", behavior: "valid SQL"2177 behaves like valid SQL2178 is expected not to include :invalid2179 query_name: "set operator with static alias referenced columns", behavior: "valid SQL"2180 behaves like valid SQL2181 is expected not to include :invalid2182 query_name: "set operator with dynamic columns", behavior: "valid SQL"2183 behaves like valid SQL2184 is expected not to include :invalid2185 query_name: "set operator with dynamic referenced columns", behavior: "valid SQL"2186 behaves like valid SQL2187 is expected not to include :invalid2188 query_name: "set operator with dynamic referenced aliased columns", behavior: "valid SQL"2189 behaves like valid SQL2190 is expected not to include :invalid2191 query_name: "set operator with dynamic columns without using star", behavior: "invalid SQL"2192 behaves like invalid SQL2193 is expected to include :invalid2194 query_name: "set operator with single dynamic referenced columns", behavior: "valid SQL"2195 behaves like valid SQL2196 is expected not to include :invalid2197 query_name: "set operator with static and dynamic columns", behavior: "invalid SQL"2198 behaves like invalid SQL2199 is expected to include :invalid2200 query_name: "set operator with static and dynamic aliased columns", behavior: "invalid SQL"2201 behaves like invalid SQL2202 is expected to include :invalid2203 query_name: "set operator with static aliased columns and dynamic columns", behavior: "invalid SQL"2204 behaves like invalid SQL2205 is expected to include :invalid2206 query_name: "set operator with static columns and dynamic aliased columns", behavior: "invalid SQL"2207 behaves like invalid SQL2208 is expected to include :invalid2209 query_name: "set operator with static and dynamic aliased columns", behavior: "invalid SQL"2210 behaves like invalid SQL2211 is expected to include :invalid2212 query_name: "set operator with mixed dynamic and static columns", behavior: "valid SQL"2213 behaves like valid SQL2214 is expected not to include :invalid2215 query_name: "set operator without references", behavior: "valid SQL"2216 behaves like valid SQL2217 is expected not to include :invalid2218 select_columns: "namespaces_cte.*"2219 query_name: "set operator with static columns", behavior: "valid SQL"2220 behaves like valid SQL2221 is expected not to include :invalid2222 query_name: "set operator with static referenced columns", behavior: "valid SQL"2223 behaves like valid SQL2224 is expected not to include :invalid2225 query_name: "set operator with static alias referenced columns", behavior: "valid SQL"2226 behaves like valid SQL2227 is expected not to include :invalid2228 query_name: "set operator with dynamic columns", behavior: "valid SQL"2229 behaves like valid SQL2230 is expected not to include :invalid2231 query_name: "set operator with dynamic referenced columns", behavior: "valid SQL"2232 behaves like valid SQL2233 is expected not to include :invalid2234 query_name: "set operator with dynamic referenced aliased columns", behavior: "valid SQL"2235 behaves like valid SQL2236 is expected not to include :invalid2237 query_name: "set operator with dynamic columns without using star", behavior: "invalid SQL"2238 behaves like invalid SQL2239 is expected to include :invalid2240 query_name: "set operator with single dynamic referenced columns", behavior: "valid SQL"2241 behaves like valid SQL2242 is expected not to include :invalid2243 query_name: "set operator with static and dynamic columns", behavior: "invalid SQL"2244 behaves like invalid SQL2245 is expected to include :invalid2246 query_name: "set operator with static and dynamic aliased columns", behavior: "invalid SQL"2247 behaves like invalid SQL2248 is expected to include :invalid2249 query_name: "set operator with static aliased columns and dynamic columns", behavior: "invalid SQL"2250 behaves like invalid SQL2251 is expected to include :invalid2252 query_name: "set operator with static columns and dynamic aliased columns", behavior: "invalid SQL"2253 behaves like invalid SQL2254 is expected to include :invalid2255 query_name: "set operator with static and dynamic aliased columns", behavior: "invalid SQL"2256 behaves like invalid SQL2257 is expected to include :invalid2258 query_name: "set operator with mixed dynamic and static columns", behavior: "valid SQL"2259 behaves like valid SQL2260 is expected not to include :invalid2261 query_name: "set operator without references", behavior: "valid SQL"2262 behaves like valid SQL2263 is expected not to include :invalid2264 select_columns: "namespaces_cte.id"2265 query_name: "set operator with static columns", behavior: "valid SQL"2266 behaves like valid SQL2267 is expected not to include :invalid2268 query_name: "set operator with static referenced columns", behavior: "valid SQL"2269 behaves like valid SQL2270 is expected not to include :invalid2271 query_name: "set operator with static alias referenced columns", behavior: "valid SQL"2272 behaves like valid SQL2273 is expected not to include :invalid2274 query_name: "set operator with dynamic columns", behavior: "valid SQL"2275 behaves like valid SQL2276 is expected not to include :invalid2277 query_name: "set operator with dynamic referenced columns", behavior: "valid SQL"2278 behaves like valid SQL2279 is expected not to include :invalid2280 query_name: "set operator with dynamic referenced aliased columns", behavior: "valid SQL"2281 behaves like valid SQL2282 is expected not to include :invalid2283 query_name: "set operator with dynamic columns without using star", behavior: "invalid SQL"2284 behaves like invalid SQL2285 is expected to include :invalid2286 query_name: "set operator with single dynamic referenced columns", behavior: "valid SQL"2287 behaves like valid SQL2288 is expected not to include :invalid2289 query_name: "set operator with static and dynamic columns", behavior: "invalid SQL"2290 behaves like invalid SQL2291 is expected to include :invalid2292 query_name: "set operator with static and dynamic aliased columns", behavior: "invalid SQL"2293 behaves like invalid SQL2294 is expected to include :invalid2295 query_name: "set operator with static aliased columns and dynamic columns", behavior: "invalid SQL"2296 behaves like invalid SQL2297 is expected to include :invalid2298 query_name: "set operator with static columns and dynamic aliased columns", behavior: "invalid SQL"2299 behaves like invalid SQL2300 is expected to include :invalid2301 query_name: "set operator with static and dynamic aliased columns", behavior: "invalid SQL"2302 behaves like invalid SQL2303 is expected to include :invalid2304 query_name: "set operator with mixed dynamic and static columns", behavior: "valid SQL"2305 behaves like valid SQL2306 is expected not to include :invalid2307 query_name: "set operator without references", behavior: "valid SQL"2308 behaves like valid SQL2309 is expected not to include :invalid2310 when used by one side of EXCEPT2311 cte_select_columns: "*", select_columns: "*", cte_name: "some_cte", expected: "valid SQL"2312 behaves like valid SQL2313 is expected not to include :invalid2314 cte_select_columns: static_namespace_columns, select_columns: "*", cte_name: "some_cte", expected: "invalid SQL"2315 behaves like invalid SQL2316 is expected to include :invalid2317 cte_select_columns: "*", select_columns: static_namespace_columns, cte_name: "some_cte", expected: "invalid SQL"2318 behaves like invalid SQL2319 is expected to include :invalid2320 cte_select_columns: static_namespace_columns, select_columns: static_namespace_columns, cte_name: "some_cte", expected: "invalid SQL"2321 behaves like invalid SQL2322 is expected to include :invalid2323 cte_select_columns: "*", select_columns: "*", cte_name: "some_cte", expected: "valid SQL"2324 behaves like valid SQL2325 is expected not to include :invalid2326 cte_select_columns: "*", select_columns: "*", cte_name: "namespaces", expected: "valid SQL"2327 behaves like valid SQL2328 is expected not to include :invalid2329 cte_select_columns: static_namespace_columns, select_columns: "*", cte_name: "namespaces", expected: "valid SQL"2330 behaves like valid SQL2331 is expected not to include :invalid2332 cte_select_columns: "*", select_columns: static_namespace_columns, cte_name: "namespaces", expected: "invalid SQL"2333 behaves like invalid SQL2334 is expected to include :invalid2335 cte_select_columns: static_namespace_columns, select_columns: static_namespace_columns, cte_name: "namespaces", expected: "valid SQL"2336 behaves like valid SQL2337 is expected not to include :invalid2338 cte_select_columns: "*", select_columns: "*", cte_name: "namespaces", expected: "valid SQL"2339 behaves like valid SQL2340 is expected not to include :invalid2341 when recursive2342 select1: "id", select2: "id", expected: "valid SQL"2343 behaves like valid SQL2344 is expected not to include :invalid2345 select1: static_namespace_columns, select2: "*", expected: "valid SQL"2346 behaves like valid SQL2347 is expected not to include :invalid2348 select1: "*", select2: static_namespace_columns, expected: "invalid SQL"2349 behaves like invalid SQL2350 is expected to include :invalid2351 for subselect2352 with set operator2353 behaves like valid SQL2354 is expected not to include :invalid2355 when columns are not referenced2356 behaves like invalid SQL2357 is expected to include :invalid2358Snippets::UpdateService2359 #execute2360 when Project Snippet2361 behaves like a service that updates a snippet2362 updates a snippet with the provided attributes2363 behaves like public visibility level restrictions apply2364 when user is not an admin2365 responds with an error2366 does not update snippet to public visibility2367 when user is an admin2368 responds with success2369 updates the snippet to public visibility2370 when visibility level is passed as a string2371 assigns the correct visibility level2372 behaves like snippet update data is tracked2373 increments count when create succeeds2374 when update fails2375 does not increment count2376 behaves like updates repository content2377 commit the files to the repository2378 returns error if snippet does not have a snippet_repository2379 when an error is raised2380 logs the error2381 returns error with generic error message2382 when the repository does not exist2383 does not try to commit file2384 behaves like commit operation fails2385 returns error2386 when repository is empty2387 destroys the created repository in disk2388 destroys the SnippetRepository object2389 expires the repository exists method cache2390 when repository is not empty2391 does not destroy the repository2392 does not destroy the snippet repository2393 expires the repository exists method cache2394 with snippet modifications2395 rolls back any snippet modifications2396 keeps any snippet modifications2397 behaves like committable attributes2398 when file_name is updated2399 commits to repository2400 when content is updated2401 commits to repository2402 when content or file_name is not updated2403 does not perform any commit2404 behaves like when snippet_actions param is present2405 updates a snippet with the provided attributes2406 commits the files to the repository2407 when content or file_name params are present2408 raises a validation error2409 when snippet_file content is not present2410 does not update snippet content2411 when snippet_actions param is invalid2412 raises a validation error2413 when an error is raised committing the file2414 keeps any snippet modifications2415 commit actions2416 update action2417 updates the file content2418 when previous_path is present2419 updates the file content2420 when content is not present2421 behaves like returns an error2422 is expected to eq "Snippet actions have invalid data"2423 when file_path does not exist2424 behaves like returns an error2425 is expected to eq "Repository Error updating the snippet"2426 move action2427 when file_path and previous_path are the same2428 behaves like returns an error2429 is expected to eq "Snippet actions have invalid data"2430 when file_path and previous_path are different2431 renames the file2432 when previous_path does not exist2433 behaves like returns an error2434 is expected to eq "Repository Error updating the snippet"2435 when user wants to rename the file and update content2436 performs both operations2437 when the file_path is not present2438 generates the name for the renamed file2439 delete action2440 behaves like deletes the file2441 is expected to be nil2442 when previous_path is present and same as file_path2443 behaves like deletes the file2444 is expected to be nil2445 when previous_path is present and is different from file_path2446 behaves like deletes the file2447 is expected to be nil2448 when content is present2449 behaves like deletes the file2450 is expected to be nil2451 when file_path does not exist2452 behaves like returns an error2453 is expected to eq "Repository Error updating the snippet"2454 create action2455 creates the file2456 when content is not present2457 behaves like returns an error2458 is expected to eq "Snippet actions have invalid data"2459 when file_path is not present or empty2460 generates the file path for the files2461 when file_path already exists in the repository2462 behaves like returns an error2463 is expected to eq "Repository Error updating the snippet"2464 when previous_path is present2465 creates the file2466 combination of actions2467 performs all operations2468 behaves like only file_name is present2469 when renaming the file_name2470 behaves like content is not updated2471 is expected to eq "/custom-highlighting/*.gitlab-custom gitlab-language=ruby\n"2472 when file_name does not change2473 behaves like content is not updated2474 is expected to eq "/custom-highlighting/*.gitlab-custom gitlab-language=ruby\n"2475 behaves like only content is present2476 updates the content2477 behaves like invalid params error response2478 responds to errors appropriately2479 behaves like checking spam2480 executes SpamActionService2481 when snippet does not have a repository2482 behaves like creates repository and creates file2483 when file_name and content params are used2484 creates repository2485 commits the files to the repository2486 when the repository creation fails2487 raise an error2488 does not try to commit file2489 when snippet_actions param is used2490 performs operation without raising errors2491 when the repository is not created2492 keeps snippet database data2493 behaves like commit operation fails2494 returns error2495 when repository is empty2496 destroys the created repository in disk2497 destroys the SnippetRepository object2498 expires the repository exists method cache2499 when repository is not empty2500 does not destroy the repository2501 does not destroy the snippet repository2502 expires the repository exists method cache2503 with snippet modifications2504 rolls back any snippet modifications2505 keeps any snippet modifications2506 when PersonalSnippet2507 behaves like a service that updates a snippet2508 updates a snippet with the provided attributes2509 behaves like public visibility level restrictions apply2510 when user is not an admin2511 responds with an error2512 does not update snippet to public visibility2513 when user is an admin2514 responds with success2515 updates the snippet to public visibility2516 when visibility level is passed as a string2517 assigns the correct visibility level2518 behaves like snippet update data is tracked2519 increments count when create succeeds2520 when update fails2521 does not increment count2522 behaves like updates repository content2523 commit the files to the repository2524 returns error if snippet does not have a snippet_repository2525 when an error is raised2526 logs the error2527 returns error with generic error message2528 when the repository does not exist2529 does not try to commit file2530 behaves like commit operation fails2531 returns error2532 when repository is empty2533 destroys the created repository in disk2534 destroys the SnippetRepository object2535 expires the repository exists method cache2536 when repository is not empty2537 does not destroy the repository2538 does not destroy the snippet repository2539 expires the repository exists method cache2540 with snippet modifications2541 rolls back any snippet modifications2542 keeps any snippet modifications2543 behaves like committable attributes2544 when file_name is updated2545 commits to repository2546 when content is updated2547 commits to repository2548 when content or file_name is not updated2549 does not perform any commit2550 behaves like when snippet_actions param is present2551 updates a snippet with the provided attributes2552 commits the files to the repository2553 when content or file_name params are present2554 raises a validation error2555 when snippet_file content is not present2556 does not update snippet content2557 when snippet_actions param is invalid2558 raises a validation error2559 when an error is raised committing the file2560 keeps any snippet modifications2561 commit actions2562 update action2563 updates the file content2564 when previous_path is present2565 updates the file content2566 when content is not present2567 behaves like returns an error2568 is expected to eq "Snippet actions have invalid data"2569 when file_path does not exist2570 behaves like returns an error2571 is expected to eq "Repository Error updating the snippet"2572 move action2573 when file_path and previous_path are the same2574 behaves like returns an error2575 is expected to eq "Snippet actions have invalid data"2576 when file_path and previous_path are different2577 renames the file2578 when previous_path does not exist2579 behaves like returns an error2580 is expected to eq "Repository Error updating the snippet"2581 when user wants to rename the file and update content2582 performs both operations2583 when the file_path is not present2584 generates the name for the renamed file2585 delete action2586 behaves like deletes the file2587 is expected to be nil2588 when previous_path is present and same as file_path2589 behaves like deletes the file2590 is expected to be nil2591 when previous_path is present and is different from file_path2592 behaves like deletes the file2593 is expected to be nil2594 when content is present2595 behaves like deletes the file2596 is expected to be nil2597 when file_path does not exist2598 behaves like returns an error2599 is expected to eq "Repository Error updating the snippet"2600 create action2601 creates the file2602 when content is not present2603 behaves like returns an error2604 is expected to eq "Snippet actions have invalid data"2605 when file_path is not present or empty2606 generates the file path for the files2607 when file_path already exists in the repository2608 behaves like returns an error2609 is expected to eq "Repository Error updating the snippet"2610 when previous_path is present2611 creates the file2612 combination of actions2613 performs all operations2614 behaves like only file_name is present2615 when renaming the file_name2616 behaves like content is not updated2617 is expected to eq "/custom-highlighting/*.gitlab-custom gitlab-language=ruby\n"2618 when file_name does not change2619 behaves like content is not updated2620 is expected to eq "/custom-highlighting/*.gitlab-custom gitlab-language=ruby\n"2621 behaves like only content is present2622 updates the content2623 behaves like invalid params error response2624 responds to errors appropriately2625 behaves like checking spam2626 executes SpamActionService2627 when snippet does not have a repository2628 behaves like creates repository and creates file2629 when file_name and content params are used2630 creates repository2631 commits the files to the repository2632 when the repository creation fails2633 raise an error2634 does not try to commit file2635 when snippet_actions param is used2636 performs operation without raising errors2637 when the repository is not created2638 keeps snippet database data2639 behaves like commit operation fails2640 returns error2641 when repository is empty2642 destroys the created repository in disk2643 destroys the SnippetRepository object2644 expires the repository exists method cache2645 when repository is not empty2646 does not destroy the repository2647 does not destroy the snippet repository2648 expires the repository exists method cache2649 with snippet modifications2650 rolls back any snippet modifications2651 keeps any snippet modifications2652IntegrationsHelper2653 #integration_event_title2654 behaves like is defined for each integration event2655 when integration is buildkite, event is push2656 is expected not to be nil2657 when integration is buildkite, event is merge_request2658 is expected not to be nil2659 when integration is buildkite, event is tag_push2660 is expected not to be nil2661 when integration is discord, event is push2662 is expected not to be nil2663 when integration is discord, event is issue2664 is expected not to be nil2665 when integration is discord, event is confidential_issue2666 is expected not to be nil2667 when integration is discord, event is merge_request2668 is expected not to be nil2669 when integration is discord, event is note2670 is expected not to be nil2671 when integration is discord, event is confidential_note2672 is expected not to be nil2673 when integration is discord, event is tag_push2674 is expected not to be nil2675 when integration is discord, event is pipeline2676 is expected not to be nil2677 when integration is discord, event is wiki_page2678 is expected not to be nil2679 when integration is discord, event is deployment2680 is expected not to be nil2681 when integration is drone_ci, event is push2682 is expected not to be nil2683 when integration is drone_ci, event is merge_request2684 is expected not to be nil2685 when integration is drone_ci, event is tag_push2686 is expected not to be nil2687 when integration is emails_on_push, event is push2688 is expected not to be nil2689 when integration is emails_on_push, event is tag_push2690 is expected not to be nil2691 when integration is hangouts_chat, event is push2692 is expected not to be nil2693 when integration is hangouts_chat, event is issue2694 is expected not to be nil2695 when integration is hangouts_chat, event is confidential_issue2696 is expected not to be nil2697 when integration is hangouts_chat, event is merge_request2698 is expected not to be nil2699 when integration is hangouts_chat, event is note2700 is expected not to be nil2701 when integration is hangouts_chat, event is confidential_note2702 is expected not to be nil2703 when integration is hangouts_chat, event is tag_push2704 is expected not to be nil2705 when integration is hangouts_chat, event is pipeline2706 is expected not to be nil2707 when integration is hangouts_chat, event is wiki_page2708 is expected not to be nil2709 when integration is jenkins, event is push2710 is expected not to be nil2711 when integration is jenkins, event is merge_request2712 is expected not to be nil2713 when integration is jenkins, event is tag_push2714 is expected not to be nil2715 when integration is jira, event is commit2716 is expected not to be nil2717 when integration is jira, event is merge_request2718 is expected not to be nil2719 when integration is mattermost, event is push2720 is expected not to be nil2721 when integration is mattermost, event is issue2722 is expected not to be nil2723 when integration is mattermost, event is confidential_issue2724 is expected not to be nil2725 when integration is mattermost, event is merge_request2726 is expected not to be nil2727 when integration is mattermost, event is note2728 is expected not to be nil2729 when integration is mattermost, event is confidential_note2730 is expected not to be nil2731 when integration is mattermost, event is tag_push2732 is expected not to be nil2733 when integration is mattermost, event is pipeline2734 is expected not to be nil2735 when integration is mattermost, event is wiki_page2736 is expected not to be nil2737 when integration is mattermost, event is deployment2738 is expected not to be nil2739 when integration is mattermost, event is incident2740 is expected not to be nil2741 when integration is mattermost, event is vulnerability2742 is expected not to be nil2743 when integration is microsoft_teams, event is push2744 is expected not to be nil2745 when integration is microsoft_teams, event is issue2746 is expected not to be nil2747 when integration is microsoft_teams, event is confidential_issue2748 is expected not to be nil2749 when integration is microsoft_teams, event is merge_request2750 is expected not to be nil2751 when integration is microsoft_teams, event is note2752 is expected not to be nil2753 when integration is microsoft_teams, event is confidential_note2754 is expected not to be nil2755 when integration is microsoft_teams, event is tag_push2756 is expected not to be nil2757 when integration is microsoft_teams, event is pipeline2758 is expected not to be nil2759 when integration is microsoft_teams, event is wiki_page2760 is expected not to be nil2761 when integration is packagist, event is push2762 is expected not to be nil2763 when integration is packagist, event is merge_request2764 is expected not to be nil2765 when integration is packagist, event is tag_push2766 is expected not to be nil2767 when integration is pumble, event is push2768 is expected not to be nil2769 when integration is pumble, event is issue2770 is expected not to be nil2771 when integration is pumble, event is confidential_issue2772 is expected not to be nil2773 when integration is pumble, event is merge_request2774 is expected not to be nil2775 when integration is pumble, event is note2776 is expected not to be nil2777 when integration is pumble, event is confidential_note2778 is expected not to be nil2779 when integration is pumble, event is tag_push2780 is expected not to be nil2781 when integration is pumble, event is pipeline2782 is expected not to be nil2783 when integration is pumble, event is wiki_page2784 is expected not to be nil2785 when integration is slack, event is push2786 is expected not to be nil2787 when integration is slack, event is issue2788 is expected not to be nil2789 when integration is slack, event is confidential_issue2790 is expected not to be nil2791 when integration is slack, event is merge_request2792 is expected not to be nil2793 when integration is slack, event is note2794 is expected not to be nil2795 when integration is slack, event is confidential_note2796 is expected not to be nil2797 when integration is slack, event is tag_push2798 is expected not to be nil2799 when integration is slack, event is pipeline2800 is expected not to be nil2801 when integration is slack, event is wiki_page2802 is expected not to be nil2803 when integration is slack, event is deployment2804 is expected not to be nil2805 when integration is slack, event is incident2806 is expected not to be nil2807 when integration is slack, event is vulnerability2808 is expected not to be nil2809 when integration is slack, event is alert2810 is expected not to be nil2811 when integration is squash_tm, event is issue2812 is expected not to be nil2813 when integration is squash_tm, event is confidential_issue2814 is expected not to be nil2815 when integration is teamcity, event is push2816 is expected not to be nil2817 when integration is teamcity, event is merge_request2818 is expected not to be nil2819 when integration is telegram, event is push2820 is expected not to be nil2821 when integration is telegram, event is issue2822 is expected not to be nil2823 when integration is telegram, event is confidential_issue2824 is expected not to be nil2825 when integration is telegram, event is merge_request2826 is expected not to be nil2827 when integration is telegram, event is note2828 is expected not to be nil2829 when integration is telegram, event is confidential_note2830 is expected not to be nil2831 when integration is telegram, event is tag_push2832 is expected not to be nil2833 when integration is telegram, event is pipeline2834 is expected not to be nil2835 when integration is telegram, event is wiki_page2836 is expected not to be nil2837 when integration is telegram, event is incident2838 is expected not to be nil2839 when integration is telegram, event is vulnerability2840 is expected not to be nil2841 when integration is unify_circuit, event is push2842 is expected not to be nil2843 when integration is unify_circuit, event is issue2844 is expected not to be nil2845 when integration is unify_circuit, event is confidential_issue2846 is expected not to be nil2847 when integration is unify_circuit, event is merge_request2848 is expected not to be nil2849 when integration is unify_circuit, event is note2850 is expected not to be nil2851 when integration is unify_circuit, event is confidential_note2852 is expected not to be nil2853 when integration is unify_circuit, event is tag_push2854 is expected not to be nil2855 when integration is unify_circuit, event is pipeline2856 is expected not to be nil2857 when integration is unify_circuit, event is wiki_page2858 is expected not to be nil2859 when integration is webex_teams, event is push2860 is expected not to be nil2861 when integration is webex_teams, event is issue2862 is expected not to be nil2863 when integration is webex_teams, event is confidential_issue2864 is expected not to be nil2865 when integration is webex_teams, event is merge_request2866 is expected not to be nil2867 when integration is webex_teams, event is note2868 is expected not to be nil2869 when integration is webex_teams, event is confidential_note2870 is expected not to be nil2871 when integration is webex_teams, event is tag_push2872 is expected not to be nil2873 when integration is webex_teams, event is pipeline2874 is expected not to be nil2875 when integration is webex_teams, event is wiki_page2876 is expected not to be nil2877 #integration_event_description2878 behaves like is defined for each integration event2879 when integration is buildkite, event is push2880 is expected not to be nil2881 when integration is buildkite, event is merge_request2882 is expected not to be nil2883 when integration is buildkite, event is tag_push2884 is expected not to be nil2885 when integration is discord, event is push2886 is expected not to be nil2887 when integration is discord, event is issue2888 is expected not to be nil2889 when integration is discord, event is confidential_issue2890 is expected not to be nil2891 when integration is discord, event is merge_request2892 is expected not to be nil2893 when integration is discord, event is note2894 is expected not to be nil2895 when integration is discord, event is confidential_note2896 is expected not to be nil2897 when integration is discord, event is tag_push2898 is expected not to be nil2899 when integration is discord, event is pipeline2900 is expected not to be nil2901 when integration is discord, event is wiki_page2902 is expected not to be nil2903 when integration is discord, event is deployment2904 is expected not to be nil2905 when integration is drone_ci, event is push2906 is expected not to be nil2907 when integration is drone_ci, event is merge_request2908 is expected not to be nil2909 when integration is drone_ci, event is tag_push2910 is expected not to be nil2911 when integration is emails_on_push, event is push2912 is expected not to be nil2913 when integration is emails_on_push, event is tag_push2914 is expected not to be nil2915 when integration is hangouts_chat, event is push2916 is expected not to be nil2917 when integration is hangouts_chat, event is issue2918 is expected not to be nil2919 when integration is hangouts_chat, event is confidential_issue2920 is expected not to be nil2921 when integration is hangouts_chat, event is merge_request2922 is expected not to be nil2923 when integration is hangouts_chat, event is note2924 is expected not to be nil2925 when integration is hangouts_chat, event is confidential_note2926 is expected not to be nil2927 when integration is hangouts_chat, event is tag_push2928 is expected not to be nil2929 when integration is hangouts_chat, event is pipeline2930 is expected not to be nil2931 when integration is hangouts_chat, event is wiki_page2932 is expected not to be nil2933 when integration is jenkins, event is push2934 is expected not to be nil2935 when integration is jenkins, event is merge_request2936 is expected not to be nil2937 when integration is jenkins, event is tag_push2938 is expected not to be nil2939 when integration is jira, event is commit2940 is expected not to be nil2941 when integration is jira, event is merge_request2942 is expected not to be nil2943 when integration is mattermost, event is push2944 is expected not to be nil2945 when integration is mattermost, event is issue2946 is expected not to be nil2947 when integration is mattermost, event is confidential_issue2948 is expected not to be nil2949 when integration is mattermost, event is merge_request2950 is expected not to be nil2951 when integration is mattermost, event is note2952 is expected not to be nil2953 when integration is mattermost, event is confidential_note2954 is expected not to be nil2955 when integration is mattermost, event is tag_push2956 is expected not to be nil2957 when integration is mattermost, event is pipeline2958 is expected not to be nil2959 when integration is mattermost, event is wiki_page2960 is expected not to be nil2961 when integration is mattermost, event is deployment2962 is expected not to be nil2963 when integration is mattermost, event is incident2964 is expected not to be nil2965 when integration is mattermost, event is vulnerability2966 is expected not to be nil2967 when integration is microsoft_teams, event is push2968 is expected not to be nil2969 when integration is microsoft_teams, event is issue2970 is expected not to be nil2971 when integration is microsoft_teams, event is confidential_issue2972 is expected not to be nil2973 when integration is microsoft_teams, event is merge_request2974 is expected not to be nil2975 when integration is microsoft_teams, event is note2976 is expected not to be nil2977 when integration is microsoft_teams, event is confidential_note2978 is expected not to be nil2979 when integration is microsoft_teams, event is tag_push2980 is expected not to be nil2981 when integration is microsoft_teams, event is pipeline2982 is expected not to be nil2983 when integration is microsoft_teams, event is wiki_page2984 is expected not to be nil2985 when integration is packagist, event is push2986 is expected not to be nil2987 when integration is packagist, event is merge_request2988 is expected not to be nil2989 when integration is packagist, event is tag_push2990 is expected not to be nil2991 when integration is pumble, event is push2992 is expected not to be nil2993 when integration is pumble, event is issue2994 is expected not to be nil2995 when integration is pumble, event is confidential_issue2996 is expected not to be nil2997 when integration is pumble, event is merge_request2998 is expected not to be nil2999 when integration is pumble, event is note3000 is expected not to be nil3001 when integration is pumble, event is confidential_note3002 is expected not to be nil3003 when integration is pumble, event is tag_push3004 is expected not to be nil3005 when integration is pumble, event is pipeline3006 is expected not to be nil3007 when integration is pumble, event is wiki_page3008 is expected not to be nil3009 when integration is slack, event is push3010 is expected not to be nil3011 when integration is slack, event is issue3012 is expected not to be nil3013 when integration is slack, event is confidential_issue3014 is expected not to be nil3015 when integration is slack, event is merge_request3016 is expected not to be nil3017 when integration is slack, event is note3018 is expected not to be nil3019 when integration is slack, event is confidential_note3020 is expected not to be nil3021 when integration is slack, event is tag_push3022 is expected not to be nil3023 when integration is slack, event is pipeline3024 is expected not to be nil3025 when integration is slack, event is wiki_page3026 is expected not to be nil3027 when integration is slack, event is deployment3028 is expected not to be nil3029 when integration is slack, event is incident3030 is expected not to be nil3031 when integration is slack, event is vulnerability3032 is expected not to be nil3033 when integration is slack, event is alert3034 is expected not to be nil3035 when integration is squash_tm, event is issue3036 is expected not to be nil3037 when integration is squash_tm, event is confidential_issue3038 is expected not to be nil3039 when integration is teamcity, event is push3040 is expected not to be nil3041 when integration is teamcity, event is merge_request3042 is expected not to be nil3043 when integration is telegram, event is push3044 is expected not to be nil3045 when integration is telegram, event is issue3046 is expected not to be nil3047 when integration is telegram, event is confidential_issue3048 is expected not to be nil3049 when integration is telegram, event is merge_request3050 is expected not to be nil3051 when integration is telegram, event is note3052 is expected not to be nil3053 when integration is telegram, event is confidential_note3054 is expected not to be nil3055 when integration is telegram, event is tag_push3056 is expected not to be nil3057 when integration is telegram, event is pipeline3058 is expected not to be nil3059 when integration is telegram, event is wiki_page3060 is expected not to be nil3061 when integration is telegram, event is incident3062 is expected not to be nil3063 when integration is telegram, event is vulnerability3064 is expected not to be nil3065 when integration is unify_circuit, event is push3066 is expected not to be nil3067 when integration is unify_circuit, event is issue3068 is expected not to be nil3069 when integration is unify_circuit, event is confidential_issue3070 is expected not to be nil3071 when integration is unify_circuit, event is merge_request3072 is expected not to be nil3073 when integration is unify_circuit, event is note3074 is expected not to be nil3075 when integration is unify_circuit, event is confidential_note3076 is expected not to be nil3077 when integration is unify_circuit, event is tag_push3078 is expected not to be nil3079 when integration is unify_circuit, event is pipeline3080 is expected not to be nil3081 when integration is unify_circuit, event is wiki_page3082 is expected not to be nil3083 when integration is webex_teams, event is push3084 is expected not to be nil3085 when integration is webex_teams, event is issue3086 is expected not to be nil3087 when integration is webex_teams, event is confidential_issue3088 is expected not to be nil3089 when integration is webex_teams, event is merge_request3090 is expected not to be nil3091 when integration is webex_teams, event is note3092 is expected not to be nil3093 when integration is webex_teams, event is confidential_note3094 is expected not to be nil3095 when integration is webex_teams, event is tag_push3096 is expected not to be nil3097 when integration is webex_teams, event is pipeline3098 is expected not to be nil3099 when integration is webex_teams, event is wiki_page3100 is expected not to be nil3101 when integration is Jira3102 is expected to include "Jira"3103 when integration is Team City3104 is expected to include "TeamCity"3105 #integration_form_data3106 with a GitLab for Slack App integration3107 is expected to include :id, :show_active, :activated, :activate_disabled, :type, :merge_request_events, :commit_events, :enable_comments, :comment_detail, :learn_more_path, :about_pricing_url, :trigger_events, :fields, :inherit_from_id, :integration_level, :editable, :cancel_path, :can_test, :test_path, :reset_path, :form_path, :redirect_to, :upgrade_slack_url, and :should_upgrade_slack3108 is expected not to include :jira_issue_transition_automatic and :jira_issue_transition_id3109 includes app upgrade URL3110 includes the flag to upgrade Slack app, set to true3111 when the integration includes all necessary scopes3112 includes the flag to upgrade Slack app, set to false3113 with Jenkins integration3114 is expected to include :id, :show_active, :activated, :activate_disabled, :type, :merge_request_events, :commit_events, :enable_comments, :comment_detail, :learn_more_path, :about_pricing_url, :trigger_events, :fields, :inherit_from_id, :integration_level, :editable, :cancel_path, :can_test, :test_path, :reset_path, :form_path, and :redirect_to3115 is expected not to include :jira_issue_transition_automatic and :jira_issue_transition_id3116 is expected not to include :upgrade_slack_url and :should_upgrade_slack3117 is expected to eq ""3118 is expected to eq "/services"3119 with Jira integration3120 is expected to include :id, :show_active, :activated, :activate_disabled, :type, :merge_request_events, :commit_events, :enable_comments, :comment_detail, :learn_more_path, :about_pricing_url, :trigger_events, :fields, :inherit_from_id, :integration_level, :editable, :cancel_path, :can_test, :test_path, :reset_path, :form_path, :redirect_to, :jira_issue_transition_automatic, and :jira_issue_transition_id3121 is expected not to include :upgrade_slack_url and :should_upgrade_slack3122 #integration_overrides_data3123 is expected to include {:edit_path => "/admin/application_settings/integrations/jira/edit", :overrides_path => "/admin/application_settings/integrations/jira/overrides.json"}3124 #serialize_integration3125 serializes the integration3126 #scoped_reset_integration_path3127 when no group is present3128 returns instance-level path3129 when group is present3130 returns group-level path3131 when a new integration is not persisted3132 returns an empty string3133 #add_to_slack_link3134 returns the endpoint URL with all needed params3135 #gitlab_slack_application_data3136 includes the required keys3137 does not suffer from N+1 performance issues3138 serializes nil projects without error3139 #integration_issue_type3140 only consider these enumeration values are valid3141 issue_type: "issue", expected_i18n_issue_type: "Issue"3142 return the correct i18n issue type3143 issue_type: "incident", expected_i18n_issue_type: "Incident"3144 return the correct i18n issue type3145 issue_type: "test_case", expected_i18n_issue_type: "Test case"3146 return the correct i18n issue type3147 issue_type: "requirement", expected_i18n_issue_type: "Requirement"3148 return the correct i18n issue type3149 issue_type: "task", expected_i18n_issue_type: "Task"3150 return the correct i18n issue type3151 issue_type: "ticket", expected_i18n_issue_type: "Service Desk Ticket"3152 return the correct i18n issue type3153 #integration_todo_target_type3154 target_type: "Commit", expected_i18n_target_type: "Commit"3155 is expected to eq "Commit"3156 target_type: "Issue", expected_i18n_target_type: "Issue"3157 is expected to eq "Issue"3158 target_type: "MergeRequest", expected_i18n_target_type: "Merge Request"3159 is expected to eq "Merge Request"3160 target_type: "Epic", expected_i18n_target_type: "Epic"3161 is expected to eq "Epic"3162 target_type: "DesignManagement::Design", expected_i18n_target_type: "design"3163 is expected to eq "design"3164 target_type: "AlertManagement::Alert", expected_i18n_target_type: "alert"3165 is expected to eq "alert"3166Gitlab::Email::Handler::ServiceDeskHandler3167 service desk is enabled for the project3168 when encoding of an email is iso-8859-23169 creates a new issue with readable subject and body3170 when everything is fine3171 attaches existing CRM contacts3172 behaves like a new issue request3173 creates a new issue3174 creates an issue_email_participant3175 sends thank you email3176 adds metric events for incoming and reply emails3177 with legacy incoming email address3178 behaves like a new issue request3179 creates a new issue3180 creates an issue_email_participant3181 sends thank you email3182 adds metric events for incoming and reply emails3183 when replying to issue creation email3184 when an issue with message_id has been found3185 does not create an additional issue3186 adds a comment to the created issue3187 does not send thank you email3188 when issue_email_participants FF is enabled3189 creates 2 issue_email_participants3190 when issue_email_participants FF is disabled3191 creates only 1 issue_email_participant3192 when an issue with message_id has not been found3193 creates a new issue correctly3194 sends thank you email once3195 creates 1 issue_email_participant3196 when using issue templates3197 and template is present3198 appends template text to issue description3199 when quick actions are present3200 applies quick action commands present on templates3201 applies group labels using quick actions3202 redacts quick actions present on user email body3203 when issues are set to private3204 applies quick action commands present on templates3205 and template cannot be found3206 does not append template text to issue description3207 creates support bot note on issue3208 does not send warning note email3209 when all lines of email are quoted3210 creates email with correct body3211 when using additional service desk alias address3212 when using project key3213 behaves like a new issue request3214 creates a new issue3215 creates an issue_email_participant3216 sends thank you email3217 adds metric events for incoming and reply emails3218 when there is no project with the key3219 bounces the email3220 when the project slug does not match3221 bounces the email3222 when there are multiple projects with same key3223 process email for project with matching slug3224 when project key is not set3225 behaves like a new issue request3226 creates a new issue3227 creates an issue_email_participant3228 sends thank you email3229 adds metric events for incoming and reply emails3230 when receiving a service desk custom email address verification email3231 when using incoming_email address3232 behaves like a handler that verifies Service Desk custom email verification emails3233 behaves like an early exiting handler3234 does not trigger the verification process and does not add an issue3235 with valid service desk settings3236 successfully verifies the custom email address3237 and custom email address is not the configured subaddress of the project3238 behaves like an early exiting handler3239 does not trigger the verification process and does not add an issue3240 and verification tokens do not match3241 behaves like a handler that does not verify the custom email3242 does not verify the custom email address3243 and verification email ingested too late3244 behaves like a handler that does not verify the custom email3245 does not verify the custom email address3246 and from header differs from custom email address3247 behaves like a handler that does not verify the custom email3248 does not verify the custom email address3249 when service_desk_custom_email feature flag is disabled3250 does not trigger the verification process and adds an issue instead3251 when using service_desk_email address3252 behaves like a handler that verifies Service Desk custom email verification emails3253 behaves like an early exiting handler3254 does not trigger the verification process and does not add an issue3255 with valid service desk settings3256 successfully verifies the custom email address3257 and custom email address is not the configured subaddress of the project3258 behaves like an early exiting handler3259 does not trigger the verification process and does not add an issue3260 and verification tokens do not match3261 behaves like a handler that does not verify the custom email3262 does not verify the custom email address3263 and verification email ingested too late3264 behaves like a handler that does not verify the custom email3265 does not verify the custom email address3266 and from header differs from custom email address3267 behaves like a handler that does not verify the custom email3268 does not verify the custom email address3269 when service_desk_custom_email feature flag is disabled3270 does not trigger the verification process and adds an issue instead3271 when issue email creation fails3272 still creates a new issue3273 does not create issue email record3274 when rate limiting is in effect3275 when too many requests are sent by one user3276 raises an error3277 creates 1 issue3278 when requests are sent by different users3279 creates 2 issues3280 when limit is higher than sent emails3281 creates 2 issues3282 #can_handle?3283 handles the new email key format3284 handles the legacy email key format3285 doesn't handle invalid email key3286 when there is no to address3287 behaves like a new issue request3288 creates a new issue3289 creates an issue_email_participant3290 sends thank you email3291 adds metric events for incoming and reply emails3292 when there is no from address3293 creates a new issue3294 does not send thank you email3295 when there is a sender address and a from address3296 prefers the from address3297 when service desk is not enabled for project3298 does not create an issue3299 does not send thank you email3300 when the email is forwarded through an alias3301 behaves like a new issue request3302 creates a new issue3303 creates an issue_email_participant3304 sends thank you email3305 adds metric events for incoming and reply emails3306 when the email is forwarded3307 behaves like a new issue request3308 creates a new issue3309 creates an issue_email_participant3310 sends thank you email3311 adds metric events for incoming and reply emails3312 service desk is disabled for the project3313 bounces the email3314 doesn't create an issue3315Gitlab::GitAccessSnippet3316 when actor is a DeployKey3317 does not allow push and pull access3318 when snippet repository is read-only3319 does not allow push and allows pull access3320 #check_snippet_accessibility!3321 when the snippet exists3322 allows access3323 when the snippet is nil3324 blocks access with "not found"3325 when the snippet does not have a repository3326 blocks access with "not found"3327 terms are enforced3328 blocks access when the user did not accept terms3329 allows access when the user accepted the terms3330 behaves like actor is migration bot3331 when user is the migration bot3332 can perform git operations3333 project snippet accessibility3334 when project is public3335 behaves like checks accessibility3336 anonymous3337 respects accessibility3338 non_member3339 respects accessibility3340 guest3341 respects accessibility3342 reporter3343 respects accessibility3344 maintainer3345 respects accessibility3346 admin3347 respects accessibility3348 author3349 respects accessibility3350 behaves like actor is migration bot3351 when user is the migration bot3352 can perform git operations3353 when project is public but snippet feature is private3354 behaves like checks accessibility3355 anonymous3356 respects accessibility3357 non_member3358 respects accessibility3359 guest3360 respects accessibility3361 reporter3362 respects accessibility3363 maintainer3364 respects accessibility3365 admin3366 respects accessibility3367 author3368 respects accessibility3369 behaves like actor is migration bot3370 when user is the migration bot3371 can perform git operations3372 when project is not accessible3373 anonymous3374 respects accessibility3375 non_member3376 respects accessibility3377 behaves like actor is migration bot3378 when user is the migration bot3379 can perform git operations3380 when project is archived3381 anonymous3382 cannot perform git operations3383 non_member3384 cannot perform git operations3385 guest3386 cannot perform git pushes3387 reporter3388 cannot perform git pushes3389 maintainer3390 cannot perform git pushes3391 author3392 cannot perform git pushes3393 admin3394 when admin mode is enabled3395 cannot perform git pushes3396 when admin mode is disabled3397 cannot perform git operations3398 behaves like actor is migration bot3399 when user is the migration bot3400 can perform git operations3401 when snippet feature is disabled3402 anonymous3403 cannot perform git operations3404 non_member3405 cannot perform git operations3406 author3407 cannot perform git operations3408 admin3409 cannot perform git operations3410 behaves like actor is migration bot3411 when user is the migration bot3412 can perform git operations3413 personal snippet accessibility3414 snippet_level: :public, membership: :admin, admin_mode: true, _expected_count: 13415 respects accessibility3416 behaves like actor is migration bot3417 when user is the migration bot3418 can perform git operations3419 snippet_level: :public, membership: :admin, admin_mode: false, _expected_count: 13420 respects accessibility3421 behaves like actor is migration bot3422 when user is the migration bot3423 can perform git operations3424 snippet_level: :public, membership: :author, admin_mode: nil, _expected_count: 13425 respects accessibility3426 behaves like actor is migration bot3427 when user is the migration bot3428 can perform git operations3429 snippet_level: :public, membership: :non_member, admin_mode: nil, _expected_count: 13430 respects accessibility3431 behaves like actor is migration bot3432 when user is the migration bot3433 can perform git operations3434 snippet_level: :public, membership: :anonymous, admin_mode: nil, _expected_count: 13435 respects accessibility3436 behaves like actor is migration bot3437 when user is the migration bot3438 can perform git operations3439 snippet_level: :internal, membership: :admin, admin_mode: true, _expected_count: 13440 respects accessibility3441 behaves like actor is migration bot3442 when user is the migration bot3443 can perform git operations3444 snippet_level: :internal, membership: :admin, admin_mode: false, _expected_count: 13445 respects accessibility3446 behaves like actor is migration bot3447 when user is the migration bot3448 can perform git operations3449 snippet_level: :internal, membership: :author, admin_mode: nil, _expected_count: 13450 respects accessibility3451 behaves like actor is migration bot3452 when user is the migration bot3453 can perform git operations3454 snippet_level: :internal, membership: :non_member, admin_mode: nil, _expected_count: 13455 respects accessibility3456 behaves like actor is migration bot3457 when user is the migration bot3458 can perform git operations3459 snippet_level: :internal, membership: :anonymous, admin_mode: nil, _expected_count: 03460 respects accessibility3461 behaves like actor is migration bot3462 when user is the migration bot3463 can perform git operations3464 snippet_level: :private, membership: :admin, admin_mode: true, _expected_count: 13465 respects accessibility3466 behaves like actor is migration bot3467 when user is the migration bot3468 can perform git operations3469 snippet_level: :private, membership: :admin, admin_mode: false, _expected_count: 03470 respects accessibility3471 behaves like actor is migration bot3472 when user is the migration bot3473 can perform git operations3474 snippet_level: :private, membership: :author, admin_mode: nil, _expected_count: 13475 respects accessibility3476 behaves like actor is migration bot3477 when user is the migration bot3478 can perform git operations3479 snippet_level: :private, membership: :non_member, admin_mode: nil, _expected_count: 03480 respects accessibility3481 behaves like actor is migration bot3482 when user is the migration bot3483 can perform git operations3484 snippet_level: :private, membership: :anonymous, admin_mode: nil, _expected_count: 03485 respects accessibility3486 behaves like actor is migration bot3487 when user is the migration bot3488 can perform git operations3489 when changes are specific3490 behaves like snippet checks3491 does not raise error if SnippetCheck does not raise error3492 raises error if SnippetCheck raises error3493 sets the file count limit from Snippet class3494 when user is migration bot3495 behaves like snippet checks3496 does not raise error if SnippetCheck does not raise error3497 raises error if SnippetCheck raises error3498 sets the file count limit from Snippet class3499 repository size restrictions3500 when GIT_OBJECT_DIRECTORY_RELATIVE env var is set3501 behaves like a push to repository already over the limit3502 errs3503 behaves like migration bot does not err3504 does not err3505 behaves like a push to repository below the limit3506 does not err3507 behaves like migration bot does not err3508 does not err3509 behaves like a push to repository to make it over the limit3510 errs3511 behaves like migration bot does not err3512 does not err3513 a change with GIT_OBJECT_DIRECTORY_RELATIVE env var unset3514 behaves like a push to repository already over the limit3515 errs3516 behaves like migration bot does not err3517 does not err3518 behaves like a push to repository below the limit3519 does not err3520 behaves like migration bot does not err3521 does not err3522 behaves like a push to repository to make it over the limit3523 errs3524 behaves like migration bot does not err3525 does not err3526ResourceAccessTokens::CreateService3527 #execute3528 when resource is a project3529 behaves like when user does not have permission to create a resource bot3530 behaves like token creation fails3531 does not add the project bot as a member3532 immediately destroys the bot user if one was created3533 behaves like correct error message3534 returns correct error message3535 user with valid permission3536 behaves like allows creation of bot with valid params3537 is expected to change `User.count` by 13538 creates resource bot user3539 logs the event3540 email confirmation status3541 when created by an admin3542 when admin mode is enabled3543 behaves like creates a user that has their email confirmed3544 creates a user that has their email confirmed3545 when admin mode is disabled3546 returns error3547 when created by a non-admin3548 behaves like creates a user that has their email confirmed3549 creates a user that has their email confirmed3550 bot name3551 when no name is passed3552 uses default name3553 when user provides name3554 overrides the default name value3555 bot username and email3556 check email domain3557 contains SecureRandom part3558 email name is the same as username3559 when conflicts3560 when username is reserved3561 when username is reserved by user3562 uniquifies username and email3563 when it conflicts with top-level group namespace3564 uniquifies username and email3565 when it conflicts with top-level group namespace that includes upcased characters3566 uniquifies username and email3567 when email is reserved3568 when it conflicts with confirmed primary email3569 uniquifies username and email3570 when it conflicts with unconfirmed primary email3571 uniquifies username and email3572 when it conflicts with confirmed secondary email3573 uniquifies username and email3574 when email and username is reserved3575 uniquifies username and email3576 access level3577 when user does not specify an access level3578 adds the bot user as a maintainer in the resource3579 when user specifies an access level3580 behaves like bot with access level3581 adds the bot user with the specified access level in the resource3582 with DEVELOPER access_level, in string format3583 behaves like bot with access level3584 adds the bot user with the specified access level in the resource3585 when user is external3586 creates resource bot user with external status3587 personal access token3588 is expected to change `PersonalAccessToken.count` by 13589 when user does not provide scope3590 has default scopes3591 when user provides scope explicitly3592 overrides the default scope value3593 expires_at3594 when no expiration value is passed3595 defaults to PersonalAccessToken::MAX_PERSONAL_ACCESS_TOKEN_LIFETIME_IN_DAYS3596 project bot membership expires when PAT expires3597 when user provides expiration value3598 overrides the default expiration value3599 expiry of the project bot member3600 sets the project bot to expire on the same day as the token3601 when invalid scope is passed3602 behaves like token creation fails3603 does not add the project bot as a member3604 immediately destroys the bot user if one was created3605 behaves like correct error message3606 returns correct error message3607 when access provisioning fails3608 with MAINTAINER access_level, in integer format3609 behaves like token creation fails3610 does not add the project bot as a member3611 immediately destroys the bot user if one was created3612 behaves like correct error message3613 returns correct error message3614 with MAINTAINER access_level, in string format3615 behaves like token creation fails3616 does not add the project bot as a member3617 immediately destroys the bot user if one was created3618 behaves like correct error message3619 returns correct error message3620 when user specifies an access level of OWNER for the bot3621 when the executor is a MAINTAINER3622 with OWNER access_level, in integer format3623 behaves like token creation fails3624 does not add the project bot as a member3625 immediately destroys the bot user if one was created3626 behaves like correct error message3627 returns correct error message3628 with OWNER access_level, in string format3629 behaves like token creation fails3630 does not add the project bot as a member3631 immediately destroys the bot user if one was created3632 behaves like correct error message3633 returns correct error message3634 when the executor is an OWNER3635 adds the bot user with the specified access level in the resource3636 when resource is a group3637 behaves like when user does not have permission to create a resource bot3638 behaves like token creation fails3639 does not add the project bot as a member3640 immediately destroys the bot user if one was created3641 behaves like correct error message3642 returns correct error message3643 user with valid permission3644 behaves like allows creation of bot with valid params3645 is expected to change `User.count` by 13646 creates resource bot user3647 logs the event3648 email confirmation status3649 when created by an admin3650 when admin mode is enabled3651 behaves like creates a user that has their email confirmed3652 creates a user that has their email confirmed3653 when admin mode is disabled3654 returns error3655 when created by a non-admin3656 behaves like creates a user that has their email confirmed3657 creates a user that has their email confirmed3658 bot name3659 when no name is passed3660 uses default name3661 when user provides name3662 overrides the default name value3663 bot username and email3664 check email domain3665 contains SecureRandom part3666 email name is the same as username3667 when conflicts3668 when username is reserved3669 when username is reserved by user3670 uniquifies username and email3671 when it conflicts with top-level group namespace3672 uniquifies username and email3673 when it conflicts with top-level group namespace that includes upcased characters3674 uniquifies username and email3675 when email is reserved3676 when it conflicts with confirmed primary email3677 uniquifies username and email3678 when it conflicts with unconfirmed primary email3679 uniquifies username and email3680 when it conflicts with confirmed secondary email3681 uniquifies username and email3682 when email and username is reserved3683 uniquifies username and email3684 access level3685 when user does not specify an access level3686 adds the bot user as a maintainer in the resource3687 when user specifies an access level3688 behaves like bot with access level3689 adds the bot user with the specified access level in the resource3690 with DEVELOPER access_level, in string format3691 behaves like bot with access level3692 adds the bot user with the specified access level in the resource3693 when user is external3694 creates resource bot user with external status3695 personal access token3696 is expected to change `PersonalAccessToken.count` by 13697 when user does not provide scope3698 has default scopes3699 when user provides scope explicitly3700 overrides the default scope value3701 expires_at3702 when no expiration value is passed3703 defaults to PersonalAccessToken::MAX_PERSONAL_ACCESS_TOKEN_LIFETIME_IN_DAYS3704 project bot membership expires when PAT expires3705 when user provides expiration value3706 overrides the default expiration value3707 expiry of the project bot member3708 sets the project bot to expire on the same day as the token3709 when invalid scope is passed3710 behaves like token creation fails3711 does not add the project bot as a member3712 immediately destroys the bot user if one was created3713 behaves like correct error message3714 returns correct error message3715 when access provisioning fails3716 with MAINTAINER access_level, in integer format3717 behaves like token creation fails3718 does not add the project bot as a member3719 immediately destroys the bot user if one was created3720 behaves like correct error message3721 returns correct error message3722 with MAINTAINER access_level, in string format3723 behaves like token creation fails3724 does not add the project bot as a member3725 immediately destroys the bot user if one was created3726 behaves like correct error message3727 returns correct error message3728 when user specifies an access level of OWNER for the bot3729 adds the bot user with the specified access level in the resource3730Gitlab::Auth::OAuth::User3731 .find_by_uid_and_provider3732 retrieves the correct user3733 #persisted?3734 finds an existing user based on uid and provider (facebook)3735 returns false if user is not found in database3736 #save3737 when account exists on server3738 does not mark the user as external3739 signup3740 marks user as having password_automatically_set3741 when signup is disabled3742 creates the user3743 does not repeat the default user password3744 has the password length within specified range3745 when user confirmation email is enabled3746 creates and confirms the user anyway3747 when the current minimum password length is different from the default minimum password length3748 creates the user3749 with auto_link_user disabled (default)3750 provider is marked as external3751 marks user as external3752 provider was external, now has been removed3753 does not mark external user as internal3754 provider is not external3755 when adding a new OAuth identity3756 does not promote an external user to internal3757 with new allow_single_sign_on enabled syntax3758 creates a user from Omniauth3759 with old allow_single_sign_on enabled syntax3760 creates a user from Omniauth3761 with new allow_single_sign_on disabled syntax3762 throws an error3763 with old allow_single_sign_on disabled (Default)3764 throws an error3765 with auto_link_user enabled for a different provider3766 and a current GitLab user with a matching email3767 adds the OmniAuth identity to the GitLab user account3768 and no current GitLab user with a matching email3769 provider is marked as external3770 marks user as external3771 provider was external, now has been removed3772 does not mark external user as internal3773 provider is not external3774 when adding a new OAuth identity3775 does not promote an external user to internal3776 with new allow_single_sign_on enabled syntax3777 creates a user from Omniauth3778 with old allow_single_sign_on enabled syntax3779 creates a user from Omniauth3780 with new allow_single_sign_on disabled syntax3781 throws an error3782 with old allow_single_sign_on disabled (Default)3783 throws an error3784 with auto_link_user enabled for the correct provider3785 and a current GitLab user with a matching email3786 adds the OmniAuth identity to the GitLab user account3787 and no current GitLab user with a matching email3788 provider is marked as external3789 marks user as external3790 provider was external, now has been removed3791 does not mark external user as internal3792 provider is not external3793 when adding a new OAuth identity3794 does not promote an external user to internal3795 with new allow_single_sign_on enabled syntax3796 creates a user from Omniauth3797 with old allow_single_sign_on enabled syntax3798 creates a user from Omniauth3799 with new allow_single_sign_on disabled syntax3800 throws an error3801 with old allow_single_sign_on disabled (Default)3802 throws an error3803 with auto_link_user enabled for all providers3804 and a current GitLab user with a matching email3805 adds the OmniAuth identity to the GitLab user account3806 and no current GitLab user with a matching email3807 provider is marked as external3808 marks user as external3809 provider was external, now has been removed3810 does not mark external user as internal3811 provider is not external3812 when adding a new OAuth identity3813 does not promote an external user to internal3814 with new allow_single_sign_on enabled syntax3815 creates a user from Omniauth3816 with old allow_single_sign_on enabled syntax3817 creates a user from Omniauth3818 with new allow_single_sign_on disabled syntax3819 throws an error3820 with old allow_single_sign_on disabled (Default)3821 throws an error3822 with auto_link_ldap_user disabled (default)3823 provider is marked as external3824 marks user as external3825 provider was external, now has been removed3826 does not mark external user as internal3827 provider is not external3828 when adding a new OAuth identity3829 does not promote an external user to internal3830 with new allow_single_sign_on enabled syntax3831 creates a user from Omniauth3832 with old allow_single_sign_on enabled syntax3833 creates a user from Omniauth3834 with new allow_single_sign_on disabled syntax3835 throws an error3836 with old allow_single_sign_on disabled (Default)3837 throws an error3838 and other providers3839 when sync_name is disabled3840 updates the gl_user name3841 when sync_name is enabled3842 updates the gl_user name3843 with auto_link_ldap_user enabled3844 and no LDAP provider defined3845 provider is marked as external3846 marks user as external3847 provider was external, now has been removed3848 does not mark external user as internal3849 provider is not external3850 when adding a new OAuth identity3851 does not promote an external user to internal3852 with new allow_single_sign_on enabled syntax3853 creates a user from Omniauth3854 with old allow_single_sign_on enabled syntax3855 creates a user from Omniauth3856 with new allow_single_sign_on disabled syntax3857 throws an error3858 with old allow_single_sign_on disabled (Default)3859 throws an error3860 and at least one LDAP provider is defined3861 and a corresponding LDAP person3862 and no account for the LDAP user3863 when the LDAP user is found by UID3864 does not repeat the default user password3865 creates a user with dual LDAP and omniauth identities3866 has name and email set as synced3867 has name and email set as read-only3868 has synced attributes provider set to ldapmain3869 when the LDAP user is found by email address3870 creates the LDAP identity3871 and LDAP user has an account already3872 when sync_name is disabled3873 does not update the user name3874 when sync_name is enabled3875 updates the user name3876 when an LDAP person is not found by uid3877 tries to find an LDAP person by email and adds the omniauth identity to the user3878 when also not found by email3879 tries to find an LDAP person by DN and adds the omniauth identity to the user3880 when there is an LDAP connection error3881 does not save the identity3882 and a corresponding LDAP person with some values being nil3883 creates the user correctly3884 does not have the attributes not provided by LDAP set as synced3885 does not have the attributes not provided by LDAP set as read-only3886 and a corresponding LDAP person with a non-default username3887 and no account for the LDAP user3888 creates a user favoring the LDAP username and strips email domain3889 and no corresponding LDAP person3890 provider is marked as external3891 marks user as external3892 provider was external, now has been removed3893 does not mark external user as internal3894 provider is not external3895 when adding a new OAuth identity3896 does not promote an external user to internal3897 with new allow_single_sign_on enabled syntax3898 creates a user from Omniauth3899 with old allow_single_sign_on enabled syntax3900 creates a user from Omniauth3901 with new allow_single_sign_on disabled syntax3902 throws an error3903 with old allow_single_sign_on disabled (Default)3904 throws an error3905 with both auto_link_user and auto_link_ldap_user enabled3906 and at least one LDAP provider is defined3907 and a corresponding LDAP person3908 and no account for the LDAP user3909 creates a user with dual LDAP and omniauth identities3910 has name and email set as synced3911 has name and email set as read-only3912 has synced attributes provider set to ldapmain3913 and LDAP user has an account already3914 adds the omniauth identity to the LDAP account3915 blocking3916 signup with SAML3917 does not repeat the default user password3918 behaves like being blocked on creation3919 when blocking on creation3920 creates a blocked user3921 when a sign up user cap has been set up but has not been reached yet3922 still creates a blocked user3923 behaves like not being blocked on creation3924 when not blocking on creation3925 creates a non-blocked user3926 signup with omniauth only3927 behaves like being blocked on creation3928 when blocking on creation3929 creates a blocked user3930 when a sign up user cap has been set up but has not been reached yet3931 still creates a blocked user3932 behaves like not being blocked on creation3933 when not blocking on creation3934 creates a non-blocked user3935 signup with linked omniauth and LDAP account3936 and no account for the LDAP user3937 behaves like being blocked on creation3938 when blocking on creation3939 creates a blocked user3940 when a sign up user cap has been set up but has not been reached yet3941 still creates a blocked user3942 behaves like not being blocked on creation3943 when not blocking on creation3944 creates a non-blocked user3945 and LDAP user has an account already3946 behaves like not being blocked on creation3947 when not blocking on creation3948 creates a non-blocked user3949 behaves like not being blocked on creation3950 when not blocking on creation3951 creates a non-blocked user3952 sign-in3953 behaves like not being blocked on creation3954 when not blocking on creation3955 creates a non-blocked user3956 behaves like not being blocked on creation3957 when not blocking on creation3958 creates a non-blocked user3959 behaves like not being blocked on creation3960 when not blocking on creation3961 creates a non-blocked user3962 behaves like not being blocked on creation3963 when not blocking on creation3964 creates a non-blocked user3965 ensure backwards compatibility with sync email from provider option3966 when provider sets an email3967 updates the user email3968 has email set as synced3969 has email set as read-only3970 has synced attributes provider set to my-provider3971 when provider doesn't set an email3972 does not update the user email3973 has email set as not synced3974 does not have email set as read-only3975 generating username3976 when no collision with existing user3977 generates the username with no counter3978 when collision with existing user3979 generates the username with a counter3980 when username is a reserved word3981 generates the username with a counter3982 updating email with sync profile3983 when provider sets an email3984 updates the user email3985 has email set as synced3986 has email set as read-only3987 has synced attributes provider set to my-provider3988 when provider doesn't set an email3989 does not update the user email3990 has email set as not synced3991 does not have email set as read-only3992 updating name3993 when provider sets a name3994 updates the user name3995 when provider doesn't set a name3996 does not update the user name3997 updating location3998 when provider sets a location3999 updates the user location4000 when provider doesn't set a location4001 does not update the user location4002 updating user info4003 update all info4004 updates the user email4005 updates the user name4006 updates the user location4007 sets my-provider as the attributes provider4008 update only requested info4009 updates the user name4010 updates the user location4011 does not update the user email4012 update default_scope4013 updates the user email4014 update no info when profile sync is nil4015 does not have sync_attribute4016 does not update the user email4017 does not update the user name4018 does not update the user location4019 does not create associated user synced attributes metadata4020 when gl_user is nil4021 does not raise NoMethodError4022 ._uid_and_provider4023 normalizes extern_uid4024 #find_ldap_person4025 when LDAP connection fails4026 returns nil4027 #bypass_two_factor?4028 when with allow_bypass_two_factor disabled (Default)4029 when with allow_bypass_two_factor enabled4030 when provider in allow_bypass_two_factor array4031 when provider not in allow_bypass_two_factor array4032 #protocol_name4033 is OAuth4034ProtectedBranch4035 Associations4036 is expected to belong to project required: false4037 is expected to belong to group required: false4038 Validation4039 is expected to validate that :name cannot be empty/falsy4040 uniqueness4041 is expected to validate that :name is case-sensitively unique within the scope of :project_id and :namespace_id4042 when the protected_branch was saved previously4043 is expected not to validate that :name is case-sensitively unique4044 and name is changed4045 is expected to validate that :name is case-sensitively unique within the scope of :project_id and :namespace_id4046 #validate_either_project_or_top_group4047 when protected branch does not have project or group association4048 validate failed4049 when protected branch is associated with both project and group4050 validate failed4051 when protected branch is associated with a subgroup4052 validate failed4053 set a group4054 when associated with group4055 create successfully4056 when associated with other namespace4057 create failed with `ActiveRecord::AssociationTypeMismatch`4058 #matches?4059 when the protected branch setting is not a wildcard4060 returns true for branch names that are an exact match4061 returns false for branch names that are not an exact match4062 when the protected branch name contains wildcard(s)4063 when there is a single '*'4064 returns true for branch names matching the wildcard4065 returns false for branch names not matching the wildcard4066 when the wildcard contains regex symbols other than a '*'4067 returns true for branch names matching the wildcard4068 returns false for branch names not matching the wildcard4069 when there are '*'s at either end4070 returns true for branch names matching the wildcard4071 returns false for branch names not matching the wildcard4072 when there are arbitrarily placed '*'s4073 returns true for branch names matching the wildcard4074 returns false for branch names not matching the wildcard4075 #matching4076 for direct matches4077 returns a list of protected branches matching the given branch name4078 accepts a list of protected branches to search from, so as to avoid a DB call4079 for wildcard matches4080 returns a list of protected branches matching the given branch name4081 accepts a list of protected branches to search from, so as to avoid a DB call4082 #protected?4083 existing project4084 returns true when the branch matches a protected branch via direct match4085 returns true when the branch matches a protected branch via wildcard match4086 returns false when the branch does not match a protected branch via direct match4087 returns false when the branch does not match a protected branch via wildcard match4088 returns false when branch name is nil4089 with caching4090 correctly invalidates a cache4091 correctly uses the cached version4092 when project is updated4093 does not invalidate a cache4094 when other project protected branch is updated4095 does not invalidate the current project cache4096 new project4097 when the group has set their own default_branch_protection level4098 default_branch_protection_level: 0, result: false4099 protects the default branch based on the default branch protection setting of the group4100 default_branch_protection_level: 1, result: false4101 protects the default branch based on the default branch protection setting of the group4102 default_branch_protection_level: 3, result: true4103 protects the default branch based on the default branch protection setting of the group4104 default_branch_protection_level: 2, result: true4105 protects the default branch based on the default branch protection setting of the group4106 when the group has not set their own default_branch_protection level4107 default_branch_protection_level: 0, result: false4108 protects the default branch based on the instance level default branch protection setting4109 default_branch_protection_level: 1, result: false4110 protects the default branch based on the instance level default branch protection setting4111 default_branch_protection_level: 3, result: true4112 protects the default branch based on the instance level default branch protection setting4113 default_branch_protection_level: 2, result: true4114 protects the default branch based on the instance level default branch protection setting4115 #allow_force_push?4116 when feature flag disabled4117 when the attr allow_force_push is true4118 returns true4119 when the attr allow_force_push is false4120 returns false4121 when feature flag enabled4122 group_level_value: true, project_level_value: false, result: true4123 returns result4124 group_level_value: false, project_level_value: true, result: false4125 returns result4126 group_level_value: true, project_level_value: nil, result: true4127 returns result4128 group_level_value: false, project_level_value: nil, result: false4129 returns result4130 group_level_value: nil, project_level_value: nil, result: false4131 returns result4132 #any_protected?4133 existing project4134 returns true when any of the branch names match a protected branch via direct match4135 returns true when any of the branch matches a protected branch via wildcard match4136 returns false when none of branches does not match a protected branch via direct match4137 returns false when none of the branches does not match a protected branch via wildcard match4138 .protected_refs4139 when feature flag enabled4140 call `all_protected_branches`4141 when feature flag disabled4142 call `protected_branches`4143 .protected_ref_accessible_to?4144 with guest4145 is expected to eq false4146 with reporter4147 is expected to eq false4148 with developer4149 is expected to eq false4150 with maintainer4151 is expected to eq true4152 with owner4153 is expected to eq true4154 with admin4155 is expected to eq true4156 when project is an empty repository4157 when user is an admin4158 is expected to eq true4159 when user is maintainer4160 is expected to eq true4161 when user is developer and initial push is allowed4162 is expected to eq true4163 when user is developer and initial push is not allowed4164 is expected to eq false4165 .by_name4166 returns protected branches with a matching name4167 returns protected branches with a partially matching name4168 returns protected branches with a matching name regardless of the casing4169 returns nothing when nothing matches4170 return nothing when query is blank4171 .get_ids_by_name4172 returns the id for each protected branch matching name4173 .downcase_humanized_name4174 returns downcase humanized name4175 .default_branch?4176 when the name matches the default branch4177 is expected to be default branch4178 when the name does not match the default branch4179 is expected not to be default branch4180 when a wildcard name matches the default branch4181 is expected not to be default branch4182 #group_level?4183 when entity is a Group4184 is expected to be group level4185 when entity is a Project4186 is expected not to be group level4187Integrations::HasDataFields4188 when data are stored in data_fields4189 behaves like data fields4190 #arg4191 returns the expected values4192 {arg}_changed?4193 returns false when the property has not been assigned a new value4194 returns true when the property has been assigned a different value4195 returns true when the property has been assigned a different value twice4196 returns false when the property has been re-assigned the same value4197 {arg}_touched?4198 returns false when the property has not been assigned a new value4199 returns true when the property has been assigned a different value4200 returns true when the property has been assigned a different value twice4201 returns true when the property has been re-assigned the same value4202 returns false when the property has been re-assigned the same value4203 data_fields_present?4204 returns true from the issue tracker integration4205 {arg}_was?4206 returns nil4207 when integration and data_fields are not persisted4208 data_fields_present?4209 returns true4210 when data are stored in properties4211 behaves like data fields4212 #arg4213 returns the expected values4214 {arg}_changed?4215 returns false when the property has not been assigned a new value4216 returns true when the property has been assigned a different value4217 returns true when the property has been assigned a different value twice4218 returns false when the property has been re-assigned the same value4219 {arg}_touched?4220 returns false when the property has not been assigned a new value4221 returns true when the property has been assigned a different value4222 returns true when the property has been assigned a different value twice4223 returns true when the property has been re-assigned the same value4224 returns false when the property has been re-assigned the same value4225 data_fields_present?4226 returns true from the issue tracker integration4227 {arg}_was?4228 returns nil when the property has not been assigned a new value4229 returns initial value when the property has been assigned a different value4230 returns initial value when the property has been re-assigned the same value4231 when data are stored in both properties and data_fields4232 behaves like data fields4233 #arg4234 returns the expected values4235 {arg}_changed?4236 returns false when the property has not been assigned a new value4237 returns true when the property has been assigned a different value4238 returns true when the property has been assigned a different value twice4239 returns false when the property has been re-assigned the same value4240 {arg}_touched?4241 returns false when the property has not been assigned a new value4242 returns true when the property has been assigned a different value4243 returns true when the property has been assigned a different value twice4244 returns true when the property has been re-assigned the same value4245 returns false when the property has been re-assigned the same value4246 data_fields_present?4247 returns true from the issue tracker integration4248 {arg}_was?4249 returns nil4250MergeRequests::CloseService4251 #execute4252 updates metrics4253 calls the merge request activity counter4254 refreshes the number of open merge requests for a valid MR4255 clean up environments for the merge request4256 schedules CleanupRefsService4257 triggers GraphQL subscription mergeRequestMergeStatusUpdated4258 behaves like cache counters invalidator4259 invalidates counter cache for assignees4260 behaves like merge request reviewers cache counters invalidator4261 invalidates counter cache for reviewers4262 valid params4263 is expected to be valid4264 is expected to be closed4265 executes hooks with close action4266 sends email to user2 about assign of new merge_request4267 creates a resource event4268 marks todos as done4269 when auto merge is enabled4270 cancels the auto merge4271 current user is not authorized to close merge request4272 does not close the merge request4273 does not trigger GraphQL subscription mergeRequestMergeStatusUpdated4274Deployments::CreateForJobService4275 # order random4276 behaves like create deployment for job4277 #execute4278 with a deployment job4279 creates a deployment record4280 when creation failure occures4281 trackes the exception4282 when the corresponding environment does not exist4283 does not create a deployment record4284 with a teardown job4285 does not create a deployment record4286 with a normal job4287 does not create a deployment record4288 when job has environment attribute4289 returns a deployment object with environment4290 when environment has deployment platform4291 sets the cluster and deployment_cluster4292 when a custom namespace is given4293 when cluster is managed4294 does not set the custom namespace4295 when cluster is not managed4296 sets the custom namespace4297 when job already has deployment4298 returns the persisted deployment4299 when job does not start environment4300 action: "stop"4301 returns nothing4302 action: "prepare"4303 returns nothing4304 action: "verify"4305 returns nothing4306 action: "access"4307 returns nothing4308 when job does not have environment attribute4309 returns nothing4310 behaves like create deployment for job4311 #execute4312 with a deployment job4313 creates a deployment record4314 when creation failure occures4315 trackes the exception4316 when the corresponding environment does not exist4317 does not create a deployment record4318 with a teardown job4319 does not create a deployment record4320 with a normal job4321 does not create a deployment record4322 when job has environment attribute4323 returns a deployment object with environment4324 when environment has deployment platform4325 sets the cluster and deployment_cluster4326 when a custom namespace is given4327 when cluster is managed4328 does not set the custom namespace4329 when cluster is not managed4330 sets the custom namespace4331 when job already has deployment4332 returns the persisted deployment4333 when job does not start environment4334 action: "stop"4335 returns nothing4336 action: "prepare"4337 returns nothing4338 action: "verify"4339 returns nothing4340 action: "access"4341 returns nothing4342 when job does not have environment attribute4343 returns nothing4344UsersController routing4345 to #show4346 to #gpg_keys4347 to #groups4348 to #projects4349 to #contributed4350 to #snippets4351 to #ssh_keys4352 to #calendar4353 to #calendar_activities4354SearchController routing4355 to #show4356Mounted Apps routing4357 to API4358SnippetsController routing4359 to #raw4360 to #index4361 to #new4362 to #edit4363 to #show4364 to #raw from unscoped routing4365 behaves like redirecting a legacy path4366 redirects /snippets/1 to /-/snippets/14367HelpController routing4368 to #index4369 to #show4370ProfilesController routing4371 to #account4372 to #audit_log4373 to #reset_feed_token4374 to #show4375Profiles::PreferencesController routing4376 to #show4377 to #update4378Profiles::KeysController routing4379 to #index4380 to #create4381 to #show4382 to #destroy4383Profiles::GpgKeysController routing4384 to #index4385 to #create4386 to #destroy4387Profiles::EmailsController routing4388 to #index4389 to #create4390 to #destroy4391Profiles::AvatarsController routing4392 to #destroy4393DashboardController routing4394 to #index4395 to #issues4396 to #calendar_issues4397 to #merge_requests4398RootController routing4399 to #index4400Authentication routing4401 GET /users/sign_in4402 POST /users/sign_in4403 POST /users/sign_out4404 POST /users/password4405 GET /users/password/new4406 GET /users/password/edit4407 PUT /users/password4408 with LDAP configured4409 POST /users/auth/ldapmain/callback4410 with LDAP sign-in disabled4411 prevents POST /users/auth/ldapmain/callback4412 with multiple LDAP providers configured4413 POST /users/auth/ldapmain/callback4414 POST /users/auth/ldapsecondary/callback4415HealthCheckController routing4416 to #index4417 also supports passing checks in the url4418InvitesController routing4419 to #show4420SentNotificationsController routing4421 to #unsubscribe4422AutocompleteController routing4423 to #users4424 to #projects4425 to #award_emojis4426 to #merge_request_target_branches4427SandboxController routing4428 to #mermaid4429Snippets::BlobsController routing4430 to #raw4431RunnerSetupController routing4432 to #platforms4433JwksController routing4434 to #index4435MergeRequests::ApprovalService4436 #execute4437 with invalid approval4438 does not reset approvals4439 does not track merge request approve action4440 does not publish MergeRequests::ApprovedEvent4441 behaves like does not trigger GraphQL subscription mergeRequestMergeStatusUpdated4442 is expected not to receive merge_request_merge_status_updated(*(any args)) 0 times4443 behaves like does not trigger GraphQL subscription mergeRequestReviewersUpdated4444 is expected not to receive merge_request_reviewers_updated(*(any args)) 0 times4445 with an already approved MR4446 does not create an approval4447 behaves like does not trigger GraphQL subscription mergeRequestMergeStatusUpdated4448 is expected not to receive merge_request_merge_status_updated(*(any args)) 0 times4449 behaves like does not trigger GraphQL subscription mergeRequestReviewersUpdated4450 is expected not to receive merge_request_reviewers_updated(*(any args)) 0 times4451 with valid approval4452 resets approvals4453 tracks merge request approve action4454 publishes MergeRequests::ApprovedEvent4455 when generating a patch_id_sha4456 records a value4457 when MergeRequest#current_patch_id_sha is nil4458 records patch_id_sha as nil4459 behaves like triggers GraphQL subscription mergeRequestMergeStatusUpdated4460 is expected to receive merge_request_merge_status_updated(#<MergeRequest id:175 namespace529/project-571!1>) 1 time4461 behaves like triggers GraphQL subscription mergeRequestReviewersUpdated4462 is expected to receive merge_request_reviewers_updated(#<MergeRequest id:176 namespace530/project-572!1>) 1 time4463 behaves like triggers GraphQL subscription mergeRequestApprovalStateUpdated4464 is expected to receive merge_request_approval_state_updated(#<MergeRequest id:177 namespace531/project-573!1>) 1 time4465 user cannot update the merge request4466 does not update approvals4467 behaves like does not trigger GraphQL subscription mergeRequestMergeStatusUpdated4468 is expected not to receive merge_request_merge_status_updated(*(any args)) 0 times4469 behaves like does not trigger GraphQL subscription mergeRequestReviewersUpdated4470 is expected not to receive merge_request_reviewers_updated(*(any args)) 0 times4471 behaves like does not trigger GraphQL subscription mergeRequestApprovalStateUpdated4472 is expected not to receive merge_request_approval_state_updated(*(any args)) 0 times4473Members::InviteService4474 when there is a valid member invited4475 successfully creates a member4476 behaves like records an onboarding progress action4477 is expected to receive execute({:action=>:user_added}) 1 time4478 when email belongs to an existing user as a confirmed secondary email4479 adds an existing user to members4480 when email belongs to an existing user as an unconfirmed secondary email4481 does not link the email with any user and successfully creates a member as an invite for that email4482 when invites are passed as array4483 with emails4484 successfully creates members4485 with user_id as integers4486 successfully creates members4487 with user_id as strings4488 successfully creates members4489 with a mixture of emails and user_id4490 successfully creates members4491 with multiple invites passed as strings4492 with emails4493 successfully creates members4494 with user_id4495 successfully creates members4496 with a mixture of emails and user_id4497 successfully creates members4498 when invites formats are mixed4499 when user_id is an array and emails is a string4500 successfully creates members4501 when user_id is a string and emails is an array4502 successfully creates members4503 when invites are passed in different formats4504 when emails are passed as an empty string4505 returns an error4506 when user_id are passed as an empty string4507 returns an error4508 when user_id and emails are both passed as empty strings4509 returns an error4510 when user_id is passed as an integer4511 successfully creates member4512 when invite params are not included4513 returns an error4514 when email is not a valid email format4515 with singular email4516 returns an error4517 behaves like does not record an onboarding progress action4518 is expected not to receive new(*(any args)) 0 times4519 with user_id and singular invalid email4520 has partial success4521 with email that has trailing spaces4522 returns an error4523 behaves like does not record an onboarding progress action4524 is expected not to receive new(*(any args)) 0 times4525 with duplicate invites4526 with duplicate emails4527 only creates one member per unique invite4528 with duplicate user ids4529 only creates one member per unique invite4530 with duplicate member by adding as user id and email4531 only creates one member per unique invite4532 when observing invite limits4533 with emails and in general4534 when over the allowed default limit of emails4535 limits the number of emails to 1004536 when over the allowed custom limit of emails4537 limits the number of emails to the limit supplied4538 when limit allowed is disabled via limit param4539 does not limit number of emails4540 with user_id4541 limits the number of users to 1004542 with an existing user4543 with email4544 adds an existing user to members4545 with unconfirmed primary email4546 adds a new member as an invite for unconfirmed primary email4547 with user_id4548 adds an existing user to members4549 behaves like records an onboarding progress action4550 is expected to receive execute({:action=>:user_added}) 1 time4551 when access level is not valid4552 with email4553 returns an error4554 with user_id4555 returns an error4556 with a mix of user_id and email4557 returns errors4558 when member already exists4559 with email4560 adds new email and allows already invited members to be re-invited by email and updates the member access4561 when email is already a member with a user on the project4562 allows re-invite of an already invited email and updates the access_level4563 when email belongs to an existing user as a confirmed secondary email4564 allows re-invite to an already invited email4565 with user_id that already exists4566 does not add the member again and is successful4567 with user_id that already exists with a lower access_level4568 does not add the member again and updates the access_level4569 with user_id that already exists with a higher access_level4570 does not add the member again and updates the access_level4571 with user_id that already exists in a parent group4572 when access_level is lower than inheriting member4573 does not add the member and returns an error4574 when access_level is the same as the inheriting member4575 adds the member with correct access_level4576 when access_level is greater than the inheriting member4577 adds the member with correct access_level4578Awardable4579 Associations4580 is expected to have many award_emoji dependent => destroy4581 ClassMethods4582 orders4583 orders on upvotes4584 orders on downvotes4585 #awarded4586 filters by user and emoji name4587 filters by user and any emoji4588 #not_awarded4589 returns notes not awarded by user4590 #upvotes4591 counts the number of upvotes4592 #downvotes4593 counts the number of downvotes4594 #user_can_award?4595 is truthy when the user is allowed to award emoji4596 is falsy when the project is archived4597 querying award_emoji on an Awardable4598 sorts in ascending fashion4599 #grouped_awards4600 default award emojis4601 includes unused thumbs buttons by default4602 doesn't include unused thumbs buttons when disabled in project4603 includes unused thumbs buttons when enabled in project4604 doesn't include unused thumbs buttons in summary4605 includes used thumbs buttons when disabled in project4606 includes used thumbs buttons in summary4607Gitlab::ImportExport::FastHashSerializer4608 saves the correct hash4609 has approvals_before_merge set4610 has milestones4611 has merge requests4612 has merge request's milestones4613 has merge request's source branch SHA4614 has merge request's target branch SHA4615 has events4616 has snippets4617 has snippet notes4618 has releases4619 has no author on releases4620 has the author ID on releases4621 has issues4622 has issue comments4623 has issue assignees4624 has author on issue comments4625 has project members4626 has merge requests diffs4627 has merge request diff files4628 has merge request diff commits4629 has merge requests comments4630 has author on merge requests comments4631 has pipeline stages4632 has pipeline builds4633 has pipeline builds4634 has pipeline commits4635 has commit notes4636 has labels with no associations4637 has labels associated to records4638 has project and group labels4639 has priorities associated to labels4640 has issue resource label events4641 has merge request resource label events4642 has project feature4643 has custom attributes4644 has badges4645 does not complain about non UTF-8 characters in MR diff files4646 has a board and a list4647 project attributes4648 does not contain the runners token4649 relation ordering4650 orders exported pipelines by primary key4651GroupsHelper4652 #group_icon_url4653 returns an url for the avatar4654 gives default avatar_icon when no avatar is present4655 #group_lfs_status4656 only one project in group4657 returns all projects as enabled4658 returns all projects as disabled4659 more than one project in group4660 LFS enabled in group4661 returns both projects as enabled4662 returns only one as enabled4663 LFS disabled in group4664 returns both projects as disabled4665 returns only one as disabled4666 #group_title4667 enqueues the elements in the breadcrumb schema list4668 avoids N+1 queries4669 traversal queries4670 outputs the groups in the correct order4671 #group_title_link4672 link4673 uses the group name as innerText4674 links to the group path4675 icon4676 specifies the group name as the alt text4677 uses the group's avatar_url4678 #share_with_group_lock_help_text4679 traversal queries4680 root_share_with_group_locked: false, subgroup_share_with_group_locked: false, sub_subgroup_share_with_group_locked: false, current_user: :root_owner, help_text: :default_help, linked_ancestor: nil4681 has the correct help text with correct ancestor links4682 root_share_with_group_locked: false, subgroup_share_with_group_locked: false, sub_subgroup_share_with_group_locked: false, current_user: :sub_owner, help_text: :default_help, linked_ancestor: nil4683 has the correct help text with correct ancestor links4684 root_share_with_group_locked: false, subgroup_share_with_group_locked: false, sub_subgroup_share_with_group_locked: false, current_user: :sub_sub_owner, help_text: :default_help, linked_ancestor: nil4685 has the correct help text with correct ancestor links4686 root_share_with_group_locked: false, subgroup_share_with_group_locked: false, sub_subgroup_share_with_group_locked: true, current_user: :root_owner, help_text: :default_help, linked_ancestor: nil4687 has the correct help text with correct ancestor links4688 root_share_with_group_locked: false, subgroup_share_with_group_locked: false, sub_subgroup_share_with_group_locked: true, current_user: :sub_owner, help_text: :default_help, linked_ancestor: nil4689 has the correct help text with correct ancestor links4690 root_share_with_group_locked: false, subgroup_share_with_group_locked: false, sub_subgroup_share_with_group_locked: true, current_user: :sub_sub_owner, help_text: :default_help, linked_ancestor: nil4691 has the correct help text with correct ancestor links4692 root_share_with_group_locked: false, subgroup_share_with_group_locked: true, sub_subgroup_share_with_group_locked: false, current_user: :root_owner, help_text: :ancestor_locked_and_has_been_overridden, linked_ancestor: :subgroup4693 has the correct help text with correct ancestor links4694 root_share_with_group_locked: false, subgroup_share_with_group_locked: true, sub_subgroup_share_with_group_locked: false, current_user: :sub_owner, help_text: :ancestor_locked_and_has_been_overridden, linked_ancestor: :subgroup4695 has the correct help text with correct ancestor links4696 root_share_with_group_locked: false, subgroup_share_with_group_locked: true, sub_subgroup_share_with_group_locked: false, current_user: :sub_sub_owner, help_text: :ancestor_locked_and_has_been_overridden, linked_ancestor: :subgroup4697 has the correct help text with correct ancestor links4698 root_share_with_group_locked: false, subgroup_share_with_group_locked: true, sub_subgroup_share_with_group_locked: true, current_user: :root_owner, help_text: :ancestor_locked_but_you_can_override, linked_ancestor: :subgroup4699 has the correct help text with correct ancestor links4700 root_share_with_group_locked: false, subgroup_share_with_group_locked: true, sub_subgroup_share_with_group_locked: true, current_user: :sub_owner, help_text: :ancestor_locked_but_you_can_override, linked_ancestor: :subgroup4701 has the correct help text with correct ancestor links4702 root_share_with_group_locked: false, subgroup_share_with_group_locked: true, sub_subgroup_share_with_group_locked: true, current_user: :sub_sub_owner, help_text: :ancestor_locked_so_ask_the_owner, linked_ancestor: :subgroup4703 has the correct help text with correct ancestor links4704 root_share_with_group_locked: true, subgroup_share_with_group_locked: false, sub_subgroup_share_with_group_locked: false, current_user: :root_owner, help_text: :default_help, linked_ancestor: nil4705 has the correct help text with correct ancestor links4706 root_share_with_group_locked: true, subgroup_share_with_group_locked: false, sub_subgroup_share_with_group_locked: false, current_user: :sub_owner, help_text: :default_help, linked_ancestor: nil4707 has the correct help text with correct ancestor links4708 root_share_with_group_locked: true, subgroup_share_with_group_locked: false, sub_subgroup_share_with_group_locked: false, current_user: :sub_sub_owner, help_text: :default_help, linked_ancestor: nil4709 has the correct help text with correct ancestor links4710 root_share_with_group_locked: true, subgroup_share_with_group_locked: false, sub_subgroup_share_with_group_locked: true, current_user: :root_owner, help_text: :default_help, linked_ancestor: nil4711 has the correct help text with correct ancestor links4712 root_share_with_group_locked: true, subgroup_share_with_group_locked: false, sub_subgroup_share_with_group_locked: true, current_user: :sub_owner, help_text: :default_help, linked_ancestor: nil4713 has the correct help text with correct ancestor links4714 root_share_with_group_locked: true, subgroup_share_with_group_locked: false, sub_subgroup_share_with_group_locked: true, current_user: :sub_sub_owner, help_text: :default_help, linked_ancestor: nil4715 has the correct help text with correct ancestor links4716 root_share_with_group_locked: true, subgroup_share_with_group_locked: true, sub_subgroup_share_with_group_locked: false, current_user: :root_owner, help_text: :ancestor_locked_and_has_been_overridden, linked_ancestor: :root_group4717 has the correct help text with correct ancestor links4718 root_share_with_group_locked: true, subgroup_share_with_group_locked: true, sub_subgroup_share_with_group_locked: false, current_user: :sub_owner, help_text: :ancestor_locked_and_has_been_overridden, linked_ancestor: :root_group4719 has the correct help text with correct ancestor links4720 root_share_with_group_locked: true, subgroup_share_with_group_locked: true, sub_subgroup_share_with_group_locked: false, current_user: :sub_sub_owner, help_text: :ancestor_locked_and_has_been_overridden, linked_ancestor: :root_group4721 has the correct help text with correct ancestor links4722 root_share_with_group_locked: true, subgroup_share_with_group_locked: true, sub_subgroup_share_with_group_locked: true, current_user: :root_owner, help_text: :ancestor_locked_but_you_can_override, linked_ancestor: :root_group4723 has the correct help text with correct ancestor links4724 root_share_with_group_locked: true, subgroup_share_with_group_locked: true, sub_subgroup_share_with_group_locked: true, current_user: :sub_owner, help_text: :ancestor_locked_so_ask_the_owner, linked_ancestor: :root_group4725 has the correct help text with correct ancestor links4726 root_share_with_group_locked: true, subgroup_share_with_group_locked: true, sub_subgroup_share_with_group_locked: true, current_user: :sub_sub_owner, help_text: :ancestor_locked_so_ask_the_owner, linked_ancestor: :root_group4727 has the correct help text with correct ancestor links4728 #can_disable_group_emails?4729 returns true for the group owner4730 returns false for anyone else4731 when subgroups4732 returns false if parent group is disabling emails4733 returns true if parent group is not disabling emails4734 #can_update_default_branch_protection?4735 for users who can update default branch protection of the group4736 is expected to be truthy4737 for users who cannot update default branch protection of the group4738 is expected to be falsey4739 #show_thanks_for_purchase_alert?4740 with quantity present4741 returns true4742 with quantity not present4743 returns false4744 with quantity empty4745 returns false4746 #render_setting_to_allow_project_access_token_creation?4747 returns true if group is root4748 returns false if group is subgroup4749 #can_admin_group_member?4750 returns true when current_user can admin members4751 returns false when current_user can not admin members4752 #can_admin_service_accounts?4753 returns false when current_user can not admin members4754 #localized_jobs_to_be_done_choices4755 has a translation for all `jobs_to_be_done` values4756 #subgroup_creation_data4757 when group has a parent4758 returns expected hash4759 when group does not have a parent4760 returns expected hash4761 #group_name_and_path_app_data4762 when group has a parent4763 returns expected hash4764 #group_overview_tabs_app_data4765 returns expected hash4766 #show_group_readme?4767 when project is public4768 is expected to equal true4769 when project is private4770 when user can not see the project4771 when user can see the project4772 is expected to equal true4773 #enabled_git_access_protocol_options_for_group4774 instance setting is nil4775 is expected to include ["Both SSH and HTTP(S)", "all"], ["Only SSH", "ssh"], and ["Only HTTP(S)", "http"]4776 instance setting is blank4777 is expected to include ["Both SSH and HTTP(S)", "all"], ["Only SSH", "ssh"], and ["Only HTTP(S)", "http"]4778 instance setting is ssh4779 is expected to contain exactly ["Only SSH", "ssh"]4780 instance setting is http4781 is expected to contain exactly ["Only HTTP(S)", "http"]4782 #new_custom_emoji_path4783 with feature flag disabled4784 is expected to eq nil4785 with feature flag enabled4786 with nil group4787 is expected to eq nil4788 with current_user who has no permissions4789 is expected to eq nil4790 with current_user who has permissions4791 is expected to eq "/groups/group135/-/custom_emoji/new"4792Gitlab::Diff::FileCollection::MergeRequestDiffBatch4793 initialize4794 memoizes pagination_data4795 #diff_files4796 returns paginated diff files4797 returns a valid instance of a DiffCollection4798 first page4799 returns correct diff files4800 another page4801 returns correct diff files4802 nil batch_page4803 returns correct diff files4804 nil batch_size4805 returns correct diff files4806 invalid page4807 returns correct diff files4808 last page4809 returns correct diff files4810 behaves like unfoldable diff4811 calls Gitlab::Diff::File#unfold_diff_lines with correct position4812 behaves like diff statistics4813 when include_stats is true4814 Repository#diff_stats is called4815 Gitlab::Diff::File is initialized with diff stats4816 when should not request diff stats4817 Repository#diff_stats is not called4818 behaves like cacheable diff collection4819 #write_cache4820 calls Gitlab::Diff::HighlightCache#write_if_empty4821 calls Gitlab::Diff::StatsCache#write_if_empty with diff stats4822 #clear_cache4823 calls Gitlab::Diff::HighlightCache#clear4824 calls Gitlab::Diff::StatsCache#clear4825 #diff_files4826 calls Gitlab::Diff::HighlightCache#decorate4827 when there are stats cached4828 does not make a diff stats rpc call4829 when there are no stats cached4830 makes a diff stats rpc call4831 behaves like unsortable diff files4832 #raw_diff_files4833 does not call Gitlab::Diff::FileCollectionSorter even when sorted is true4834Packages::Debian::FileMetadatum4835 package_file_trait: :unknown, has_component: false, has_architecture: false, has_fields: false4836 behaves like Test Debian file metadatum4837 relationships4838 is expected to belong to package_file required: false4839 validations4840 #package_file4841 is expected to validate that :package_file cannot be empty/falsy4842 #file_type4843 is expected to validate that :file_type cannot be empty/falsy4844 #component4845 has_component=false4846 #architecture4847 has_architecture=false4848 #fields4849 is expected to validate that :fields is empty/falsy4850 #debian_package_type4851 validates package of type debian4852 scopes4853 .with_file_type4854 returns the matching file metadatum4855 package_file_trait: :source, has_component: true, has_architecture: false, has_fields: false4856 behaves like Test Debian file metadatum4857 relationships4858 is expected to belong to package_file required: false4859 validations4860 #package_file4861 is expected to validate that :package_file cannot be empty/falsy4862 #file_type4863 is expected to validate that :file_type cannot be empty/falsy4864 #component4865 has_component=true4866 #architecture4867 has_architecture=false4868 #fields4869 is expected to validate that :fields is empty/falsy4870 #debian_package_type4871 validates package of type debian4872 scopes4873 .with_file_type4874 returns the matching file metadatum4875 package_file_trait: :dsc, has_component: true, has_architecture: false, has_fields: true4876 behaves like Test Debian file metadatum4877 relationships4878 is expected to belong to package_file required: false4879 validations4880 #package_file4881 is expected to validate that :package_file cannot be empty/falsy4882 #file_type4883 is expected to validate that :file_type cannot be empty/falsy4884 #component4885 has_component=true4886 #architecture4887 has_architecture=false4888 #fields4889 is expected to validate that :fields cannot be empty/falsy4890 is expected to allow :fields to be ‹{a: "b"}›4891 is expected not to allow :fields to be ‹{a: {:b=>"c"}}›4892 #debian_package_type4893 validates package of type debian4894 scopes4895 .with_file_type4896 returns the matching file metadatum4897 package_file_trait: :deb, has_component: true, has_architecture: true, has_fields: true4898 behaves like Test Debian file metadatum4899 relationships4900 is expected to belong to package_file required: false4901 validations4902 #package_file4903 is expected to validate that :package_file cannot be empty/falsy4904 #file_type4905 is expected to validate that :file_type cannot be empty/falsy4906 #component4907 has_component=true4908 #architecture4909 has_architecture=true4910 #fields4911 is expected to validate that :fields cannot be empty/falsy4912 is expected to allow :fields to be ‹{a: "b"}›4913 is expected not to allow :fields to be ‹{a: {:b=>"c"}}›4914 #debian_package_type4915 validates package of type debian4916 scopes4917 .with_file_type4918 returns the matching file metadatum4919 package_file_trait: :udeb, has_component: true, has_architecture: true, has_fields: true4920 behaves like Test Debian file metadatum4921 relationships4922 is expected to belong to package_file required: false4923 validations4924 #package_file4925 is expected to validate that :package_file cannot be empty/falsy4926 #file_type4927 is expected to validate that :file_type cannot be empty/falsy4928 #component4929 has_component=true4930 #architecture4931 has_architecture=true4932 #fields4933 is expected to validate that :fields cannot be empty/falsy4934 is expected to allow :fields to be ‹{a: "b"}›4935 is expected not to allow :fields to be ‹{a: {:b=>"c"}}›4936 #debian_package_type4937 validates package of type debian4938 scopes4939 .with_file_type4940 returns the matching file metadatum4941 package_file_trait: :ddeb, has_component: true, has_architecture: true, has_fields: true4942 behaves like Test Debian file metadatum4943 relationships4944 is expected to belong to package_file required: false4945 validations4946 #package_file4947 is expected to validate that :package_file cannot be empty/falsy4948 #file_type4949 is expected to validate that :file_type cannot be empty/falsy4950 #component4951 has_component=true4952 #architecture4953 has_architecture=true4954 #fields4955 is expected to validate that :fields cannot be empty/falsy4956 is expected to allow :fields to be ‹{a: "b"}›4957 is expected not to allow :fields to be ‹{a: {:b=>"c"}}›4958 #debian_package_type4959 validates package of type debian4960 scopes4961 .with_file_type4962 returns the matching file metadatum4963 package_file_trait: :buildinfo, has_component: true, has_architecture: false, has_fields: true4964 behaves like Test Debian file metadatum4965 relationships4966 is expected to belong to package_file required: false4967 validations4968 #package_file4969 is expected to validate that :package_file cannot be empty/falsy4970 #file_type4971 is expected to validate that :file_type cannot be empty/falsy4972 #component4973 has_component=true4974 #architecture4975 has_architecture=false4976 #fields4977 is expected to validate that :fields cannot be empty/falsy4978 is expected to allow :fields to be ‹{a: "b"}›4979 is expected not to allow :fields to be ‹{a: {:b=>"c"}}›4980 #debian_package_type4981 validates package of type debian4982 scopes4983 .with_file_type4984 returns the matching file metadatum4985 package_file_trait: :changes, has_component: false, has_architecture: false, has_fields: true4986 behaves like Test Debian file metadatum4987 relationships4988 is expected to belong to package_file required: false4989 validations4990 #package_file4991 is expected to validate that :package_file cannot be empty/falsy4992 #file_type4993 is expected to validate that :file_type cannot be empty/falsy4994 #component4995 has_component=false4996 #architecture4997 has_architecture=false4998 #fields4999 is expected to validate that :fields cannot be empty/falsy5000 is expected to allow :fields to be ‹{a: "b"}›5001 is expected not to allow :fields to be ‹{a: {:b=>"c"}}›5002 #debian_package_type5003 validates package of type debian5004 scopes5005 .with_file_type5006 returns the matching file metadatum5007InstanceConfiguration5008 without cache5009 #settings5010 #ssh_algorithms_hashes5011 does not return anything if file does not exist5012 does not return anything if file is empty5013 returns the md5 and sha256 if file valid and exists5014 includes all algorithms5015 does not include disabled algorithm5016 #host5017 returns current instance host5018 #gitlab_pages5019 returns Settings.pages5020 returns the GitLab's pages host ip address5021 returns the ip address as nil if the domain is invalid5022 returns the ip address of the domain5023 #size_limits5024 returns size limits from application settings5025 returns nil if receive_max_input_size not set5026 returns nil if set to 0 (unlimited)5027 #package_file_size_limits5028 returns package file size limits5029 #ci_cd_limits5030 returns CI/CD limits5031 #rate_limits5032 returns rate limits from application settings5033 with cache5034 caches settings content5035 cached settings5036 expires after EXPIRATION_TIME5037RuboCop::Cop::Gitlab::MarkUsedFeatureFlags5038 # order random5039 use_rugged? method5040 a string feature flag5041 sets the flag as used5042 a symbol feature flag5043 sets the flag as used5044 an interpolated string feature flag with a string prefix5045 sets the flag as used5046 an interpolated symbol feature flag with a string prefix5047 sets the flag as used5048 an interpolated string feature flag with a string prefix and suffix5049 sets the flag as used5050 a dynamic string feature flag as a variable5051 sets the flag as used5052 an integer feature flag5053 sets the flag as used5054 with the experiment method5055 a string feature flag5056 sets the flag as used5057 a symbol feature flag5058 sets the flag as used5059 an interpolated string feature flag with a string prefix5060 sets the flag as used5061 an interpolated symbol feature flag with a string prefix5062 sets the flag as used5063 an interpolated string feature flag with a string prefix and suffix5064 sets the flag as used5065 a dynamic string feature flag as a variable5066 sets the flag as used5067 an integer feature flag5068 sets the flag as used5069 Class with included WorkerAttributes `data_consistency` method5070 sets the flag as used5071 sets the flag as used5072 push_frontend_feature_flag method5073 a string feature flag5074 sets the flag as used5075 a symbol feature flag5076 sets the flag as used5077 an interpolated string feature flag with a string prefix5078 sets the flag as used5079 an interpolated symbol feature flag with a string prefix5080 sets the flag as used5081 a string with a "/" in it5082 sets the flag as used5083 an interpolated string feature flag with a string prefix and suffix5084 sets the flag as used5085 a dynamic string feature flag as a variable5086 sets the flag as used5087 an integer feature flag5088 sets the flag as used5089 self.limit_feature_flag = :foo5090 sets the flag as used5091 Feature.enabled? method5092 a string feature flag5093 sets the flag as used5094 a symbol feature flag5095 sets the flag as used5096 an interpolated string feature flag with a string prefix5097 sets the flag as used5098 an interpolated symbol feature flag with a string prefix5099 sets the flag as used5100 a string with a "/" in it5101 sets the flag as used5102 an interpolated string feature flag with a string prefix and suffix5103 sets the flag as used5104 a dynamic string feature flag as a variable5105 sets the flag as used5106 an integer feature flag5107 sets the flag as used5108 Feature.disabled? method5109 a string feature flag5110 sets the flag as used5111 a symbol feature flag5112 sets the flag as used5113 an interpolated string feature flag with a string prefix5114 sets the flag as used5115 an interpolated symbol feature flag with a string prefix5116 sets the flag as used5117 a string with a "/" in it5118 sets the flag as used5119 an interpolated string feature flag with a string prefix and suffix5120 sets the flag as used5121 a dynamic string feature flag as a variable5122 sets the flag as used5123 an integer feature flag5124 sets the flag as used5125 Feature::Gitaly.enabled? method5126 a string feature flag5127 sets the flag as used5128 a symbol feature flag5129 sets the flag as used5130 an interpolated string feature flag with a string prefix5131 sets the flag as used5132 an interpolated symbol feature flag with a string prefix5133 sets the flag as used5134 an interpolated string feature flag with a string prefix and suffix5135 sets the flag as used5136 a dynamic string feature flag as a variable5137 sets the flag as used5138 an integer feature flag5139 sets the flag as used5140 self.limit_feature_flag_for_override = :foo5141 sets the flag as used5142 Worker `deduplicate` method5143 sets the flag as used5144 sets the flag as used5145 FEATURE_FLAG = :foo5146 sets the flag as used5147 ROUTING_FEATURE_FLAG = :foo5148 sets the flag as used5149 YamlProcessor::FeatureFlags.enabled? method5150 a string feature flag5151 sets the flag as used5152 a symbol feature flag5153 sets the flag as used5154 an interpolated string feature flag with a string prefix5155 sets the flag as used5156 an interpolated symbol feature flag with a string prefix5157 sets the flag as used5158 a string with a "/" in it5159 sets the flag as used5160 an interpolated string feature flag with a string prefix and suffix5161 sets the flag as used5162 a dynamic string feature flag as a variable5163 sets the flag as used5164 an integer feature flag5165 sets the flag as used5166 Worker `data_consistency` method5167 sets the flag as used5168 sets the flag as used5169 Feature::Gitaly.disabled? method5170 a string feature flag5171 sets the flag as used5172 a symbol feature flag5173 sets the flag as used5174 an interpolated string feature flag with a string prefix5175 sets the flag as used5176 an interpolated symbol feature flag with a string prefix5177 sets the flag as used5178 an interpolated string feature flag with a string prefix and suffix5179 sets the flag as used5180 a dynamic string feature flag as a variable5181 sets the flag as used5182 an integer feature flag5183 sets the flag as used5184Packages::Debian::GroupDistribution5185 behaves like Debian Distribution for common behavior5186 relationships5187 is expected to belong to creator class_name => User required: false5188 validations5189 #creator5190 is expected not to validate that :creator cannot be empty/falsy5191 #codename5192 is expected to validate that :codename cannot be empty/falsy5193 is expected to allow :codename to be ‹"buster"›5194 is expected to allow :codename to be ‹"buster-updates"›5195 is expected to allow :codename to be ‹"Debian10.5"›5196 is expected not to allow :codename to be ‹"jessie/updates"›5197 is expected not to allow :codename to be ‹"hé"›5198 #suite5199 is expected to allow :suite to be ‹nil›5200 is expected to allow :suite to be ‹"testing"›5201 is expected not to allow :suite to be ‹"hé"›5202 #origin5203 is expected to allow :origin to be ‹nil›5204 is expected to allow :origin to be ‹"Debian"›5205 is expected not to allow :origin to be ‹"hé"›5206 #label5207 is expected to allow :label to be ‹nil›5208 is expected to allow :label to be ‹"Debian"›5209 is expected not to allow :label to be ‹"hé"›5210 #version5211 is expected to allow :version to be ‹nil›5212 is expected to allow :version to be ‹"10.6"›5213 is expected not to allow :version to be ‹"hé"›5214 #description5215 is expected to allow :description to be ‹nil›5216 is expected to allow :description to be ‹"Debian 10.6 Released 26 September 2020"›5217 is expected to allow :description to be ‹"Hé !"›5218 #valid_time_duration_seconds5219 is expected to allow :valid_time_duration_seconds to be ‹nil›5220 is expected to allow :valid_time_duration_seconds to be ‹86400›5221 is expected not to allow :valid_time_duration_seconds to be ‹43200›5222 #file5223 is expected not to validate that :file cannot be empty/falsy5224 #file_store5225 is expected to validate that :file_store cannot be empty/falsy5226 #file_signature5227 is expected not to validate that :file_signature is empty/falsy5228 #signed_file5229 is expected not to validate that :signed_file cannot be empty/falsy5230 #signed_file_store5231 is expected to validate that :signed_file_store cannot be empty/falsy5232 scopes5233 .with_container5234 does not return other distributions5235 .with_codename5236 does not return other distributions5237 .with_suite5238 does not return other distributions5239 .with_codename_or_suite5240 passing codename5241 does not return other distributions5242 passing suite5243 does not return other distributions5244 behaves like Debian Distribution with group container5245 behaves like Debian Distribution for specific behavior5246 #unique_debian_suite_and_codename5247 with_existing_suite: false, suite: nil, codename: :keep, errors: nil5248 debian_group_distribution5249 is expected to be valid5250 with_existing_suite: false, suite: "testing", codename: :keep, errors: nil5251 debian_group_distribution5252 is expected to be valid5253 with_existing_suite: false, suite: nil, codename: :codename, errors: ["Codename has already been taken"]5254 debian_group_distribution5255 is expected to eq ["Codename has already been taken"]5256 with_existing_suite: false, suite: :codename, codename: :keep, errors: ["Suite has already been taken as Codename"]5257 debian_group_distribution5258 is expected to eq ["Suite has already been taken as Codename"]5259 with_existing_suite: false, suite: :codename, codename: :codename, errors: ["Codename has already been taken", "Suite has already been taken as Codename"]5260 debian_group_distribution5261 is expected to eq ["Codename has already been taken", "Suite has already been taken as Codename"]5262 with_existing_suite: true, suite: nil, codename: :keep, errors: nil5263 debian_group_distribution5264 is expected to be valid5265 with_existing_suite: true, suite: "testing", codename: :keep, errors: nil5266 debian_group_distribution5267 is expected to be valid5268 with_existing_suite: true, suite: nil, codename: :codename, errors: ["Codename has already been taken"]5269 debian_group_distribution5270 is expected to eq ["Codename has already been taken"]5271 with_existing_suite: true, suite: :codename, codename: :keep, errors: ["Suite has already been taken as Codename"]5272 debian_group_distribution5273 is expected to eq ["Suite has already been taken as Codename"]5274 with_existing_suite: true, suite: :codename, codename: :codename, errors: ["Codename has already been taken", "Suite has already been taken as Codename"]5275 debian_group_distribution5276 is expected to eq ["Codename has already been taken", "Suite has already been taken as Codename"]5277 with_existing_suite: true, suite: nil, codename: :suite, errors: ["Codename has already been taken as Suite"]5278 debian_group_distribution5279 is expected to eq ["Codename has already been taken as Suite"]5280 with_existing_suite: true, suite: :suite, codename: :keep, errors: ["Suite has already been taken"]5281 debian_group_distribution5282 is expected to eq ["Suite has already been taken"]5283 with_existing_suite: true, suite: :suite, codename: :suite, errors: ["Suite has already been taken", "Codename has already been taken as Suite"]5284 debian_group_distribution5285 is expected to eq ["Suite has already been taken", "Codename has already been taken as Suite"]5286 relationships5287 is expected to belong to group required: false5288 is expected to have one key class_name => Packages::Debian::GroupDistributionKey inverse_of => distribution5289 is expected to have many components class_name => Packages::Debian::GroupComponent inverse_of => distribution5290 is expected to have many architectures class_name => Packages::Debian::GroupArchitecture inverse_of => distribution5291 #group5292 is expected to validate that :group cannot be empty/falsy5293 group distribution specifics5294 #packages5295 returns only public packages with same codename5296 #package_files5297 returns only files from public packages with same codename5298 with pending destruction package files5299 does not return them5300ExpandVariables5301 #expand5302 table tests5303 behaves like common variable expansion5304 no expansion5305 is expected to eq "key"5306 simple expansion5307 is expected to eq "keyvalue"5308 simple with hash of variables5309 is expected to eq "keyvalue"5310 complex expansion5311 is expected to eq "keyvalue"5312 expansion using %5313 is expected to eq "keyvalue"5314 multiple simple expansions5315 is expected to eq "keyvalueresult"5316 multiple complex expansions5317 is expected to eq "keyvalueresult"5318 nested expansion is not expanded5319 is expected to eq "keyvalue$variable3"5320 out-of-order expansion5321 is expected to eq "keyresultvalue"5322 out-of-order complex expansion5323 is expected to eq "keyresultvalue"5324 review-apps expansion5325 is expected to eq "review/feature/add-review-apps"5326 do not lazily access variables when no expansion5327 is expected to eq "key"5328 lazily access variables5329 is expected to eq "keyvalue"5330 simple expansion using Collection5331 is expected to eq "keyvalue"5332 behaves like file variable expansion with expand_file_refs true5333 simple with a file variable5334 is expected to eq "keyvalue"5335 complex expansion with a file variable5336 is expected to eq "keyvalue"5337 expansion using % with a file variable5338 is expected to eq "keyvalue"5339 behaves like file variable expansion with expand_file_refs false5340 simple with a file variable5341 is expected to eq "key$variable"5342 complex expansion with a file variable5343 is expected to eq "key${variable}"5344 expansion using % with a file variable5345 is expected to eq "key%variable%"5346 behaves like masked variable expansion with fail_on_masked true5347 simple expansion with a masked variable5348 raises an error5349 complex expansion with a masked variable5350 raises an error5351 expansion using % with a masked variable5352 raises an error5353 expansion without a masked variable5354 is expected to eq "keyvalueresult"5355 behaves like masked variable expansion with fail_on_masked false5356 simple expansion with a masked variable5357 is expected to eq "keyvalue"5358 complex expansion with a masked variable5359 is expected to eq "keyvalueresult"5360 expansion using % with a masked variable5361 is expected to eq "keyvalue"5362 expansion without a masked variable5363 is expected to eq "keyvalueresult"5364 with missing variables5365 missing variable5366 is expected to eq "key"5367 complex expansions with missing variable5368 is expected to eq "keyvalue"5369 complex expansions with missing variable for Windows5370 is expected to eq "keyvalue"5371 lazily inits variables5372 when expanding variable5373 calls block at most once5374 when no expansion is needed5375 does not call block5376 #expand_existing5377 table tests5378 behaves like common variable expansion5379 no expansion5380 is expected to eq "key"5381 simple expansion5382 is expected to eq "keyvalue"5383 simple with hash of variables5384 is expected to eq "keyvalue"5385 complex expansion5386 is expected to eq "keyvalue"5387 expansion using %5388 is expected to eq "keyvalue"5389 multiple simple expansions5390 is expected to eq "keyvalueresult"5391 multiple complex expansions5392 is expected to eq "keyvalueresult"5393 nested expansion is not expanded5394 is expected to eq "keyvalue$variable3"5395 out-of-order expansion5396 is expected to eq "keyresultvalue"5397 out-of-order complex expansion5398 is expected to eq "keyresultvalue"5399 review-apps expansion5400 is expected to eq "review/feature/add-review-apps"5401 do not lazily access variables when no expansion5402 is expected to eq "key"5403 lazily access variables5404 is expected to eq "keyvalue"5405 simple expansion using Collection5406 is expected to eq "keyvalue"5407 behaves like file variable expansion with expand_file_refs true5408 simple with a file variable5409 is expected to eq "keyvalue"5410 complex expansion with a file variable5411 is expected to eq "keyvalue"5412 expansion using % with a file variable5413 is expected to eq "keyvalue"5414 behaves like file variable expansion with expand_file_refs false5415 simple with a file variable5416 is expected to eq "key$variable"5417 complex expansion with a file variable5418 is expected to eq "key${variable}"5419 expansion using % with a file variable5420 is expected to eq "key%variable%"5421 behaves like masked variable expansion with fail_on_masked true5422 simple expansion with a masked variable5423 raises an error5424 complex expansion with a masked variable5425 raises an error5426 expansion using % with a masked variable5427 raises an error5428 expansion without a masked variable5429 is expected to eq "keyvalueresult"5430 behaves like masked variable expansion with fail_on_masked false5431 simple expansion with a masked variable5432 is expected to eq "keyvalue"5433 complex expansion with a masked variable5434 is expected to eq "keyvalueresult"5435 expansion using % with a masked variable5436 is expected to eq "keyvalue"5437 expansion without a masked variable5438 is expected to eq "keyvalueresult"5439 with missing variables5440 missing variable5441 is expected to eq "key$variable"5442 complex expansions with missing variable5443 is expected to eq "keyvalue${variable2}"5444 complex expansions with missing variable for Windows5445 is expected to eq "keyvalue%variable2%"5446 lazily inits variables5447 when expanding variable5448 calls block at most once5449 when no expansion is needed5450 does not call block5451Trigger5452 # order random5453 Trigger::Docs5454 #variables5455 BRANCH_CE5456 when CI_PROJECT_PATH is gitlab-org/gitlab-foss5457 sets BRANCH_CE to CI_COMMIT_REF_NAME5458 BRANCH_EE5459 when CI_PROJECT_PATH is gitlab-org/gitlab5460 sets BRANCH_EE to CI_COMMIT_REF_NAME5461 BRANCH_RUNNER5462 when CI_PROJECT_PATH is gitlab-org/gitlab-runner5463 sets BRANCH_RUNNER to CI_COMMIT_REF_NAME5464 BRANCH_OMNIBUS5465 when CI_PROJECT_PATH is gitlab-org/omnibus-gitlab5466 sets BRANCH_OMNIBUS to CI_COMMIT_REF_NAME5467 BRANCH_CHARTS5468 when CI_PROJECT_PATH is gitlab-org/charts/gitlab5469 sets BRANCH_CHARTS to CI_COMMIT_REF_NAME5470 BRANCH_OPERATOR5471 when CI_PROJECT_PATH is gitlab-org/cloud-native/gitlab-operator5472 sets BRANCH_OPERATOR to CI_COMMIT_REF_NAME5473 REVIEW_SLUG5474 when CI_MERGE_REQUEST_IID is set5475 sets REVIEW_SLUG5476 when CI_MERGE_REQUEST_IID is not set5477 sets REVIEW_SLUG5478 .access_token5479 when DOCS_PROJECT_API_TOKEN is set5480 returns the docs-specific access token5481 when DOCS_PROJECT_API_TOKEN is not set5482 returns the default access token5483 #invoke!5484 #downstream_project_path5485 when DOCS_PROJECT_PATH is set5486 triggers the pipeline on the correct project5487 #ref5488 when DOCS_BRANCH is set5489 triggers the pipeline on the correct ref5490 #cleanup!5491 when stopping the environment succeeds5492 displays a success message5493 when stopping the environment fails5494 displays a failure message5495 Trigger::CNG5496 #variables5497 does not include redundant variables5498 invokes the trigger with expected variables5499 TRIGGER_BRANCH5500 when CNG_BRANCH is not set5501 sets TRIGGER_BRANCH to master5502 sets TRIGGER_BRANCH to main-jh on JH side5503 when CNG_BRANCH is set5504 sets TRIGGER_BRANCH to cng_branch5505 when CI_COMMIT_REF_NAME is a stable branch5506 sets TRIGGER_BRANCH to the corresponding stable branch5507 when CI_COMMIT_REF_NAME is a stable branch on JH side5508 sets TRIGGER_BRANCH to the corresponding stable branch5509 GITLAB_VERSION5510 when CI_COMMIT_SHA is set5511 sets GITLAB_VERSION to CI_COMMIT_SHA5512 GITLAB_TAG5513 when CI_COMMIT_TAG is set5514 sets GITLAB_TAG to true5515 when CI_COMMIT_TAG is nil5516 sets GITLAB_TAG to nil5517 CE_PIPELINE5518 when Trigger.ee? is true5519 sets CE_PIPELINE to nil5520 when Trigger.ee? is false5521 sets CE_PIPELINE to true5522 EE_PIPELINE5523 when Trigger.ee? is true5524 sets EE_PIPELINE to true5525 when Trigger.ee? is false5526 sets EE_PIPELINE to nil5527 GITLAB_REF_SLUG5528 when CI_COMMIT_TAG is set5529 sets GITLAB_REF_SLUG to CI_COMMIT_REF_NAME5530 when CI_COMMIT_TAG is nil5531 sets GITLAB_REF_SLUG to CI_COMMIT_SHA5532 #version_param_value5533 raw_version: "1.2.3", expected_version: "v1.2.3"5534 when set in ENV5535 includes the version from ENV5536 raw_version: "1.2.3-rc1", expected_version: "v1.2.3-rc1"5537 when set in ENV5538 includes the version from ENV5539 raw_version: "1.2.3-ee", expected_version: "v1.2.3-ee"5540 when set in ENV5541 includes the version from ENV5542 raw_version: "1.2.3-rc1-ee", expected_version: "v1.2.3-rc1-ee"5543 when set in ENV5544 includes the version from ENV5545 Trigger::Base5546 #invoke!5547 when required methods aren't defined5548 raises a NotImplementedError5549 when required methods are defined5550 waits for downstream pipeline5551 when env variable `FOO_BAR_BRANCH` does not exist5552 triggers the pipeline on the correct project and branch5553 when env variable `FOO_BAR_BRANCH` exists5554 triggers the pipeline on the correct project and branch5555 #variables5556 includes simple forwarded variables5557 #base_variables5558 when CI_COMMIT_TAG is set5559 sets GITLAB_REF_SLUG to CI_COMMIT_REF_NAME5560 when CI_COMMIT_TAG is nil5561 sets GITLAB_REF_SLUG to CI_COMMIT_REF_SLUG5562 when TRIGGERED_USER is set5563 sets TRIGGERED_USER to triggered_user5564 when TRIGGERED_USER is not set5565 sets TRIGGERED_USER to GITLAB_USER_NAME5566 when CI_COMMIT_SHA is set5567 sets TOP_UPSTREAM_SOURCE_SHA to CI_COMMIT_SHA5568 #version_file_variables5569 version_file: "GITALY_SERVER_VERSION", version: "1"5570 when set in ENV5571 includes the version from ENV5572 when set in a file5573 includes the version from the file5574 version_file: "GITLAB_ELASTICSEARCH_INDEXER_VERSION", version: "2"5575 when set in ENV5576 includes the version from ENV5577 when set in a file5578 includes the version from the file5579 version_file: "GITLAB_KAS_VERSION", version: "3"5580 when set in ENV5581 includes the version from ENV5582 when set in a file5583 includes the version from the file5584 version_file: "GITLAB_PAGES_VERSION", version: "4"5585 when set in ENV5586 includes the version from ENV5587 when set in a file5588 includes the version from the file5589 version_file: "GITLAB_SHELL_VERSION", version: "5"5590 when set in ENV5591 includes the version from ENV5592 when set in a file5593 includes the version from the file5594 version_file: "GITLAB_WORKHORSE_VERSION", version: "6"5595 when set in ENV5596 includes the version from ENV5597 when set in a file5598 includes the version from the file5599 Trigger::DatabaseTesting5600 #variables5601 invokes the trigger with expected variables5602 when CI_MERGE_REQUEST_SOURCE_BRANCH_SHA is set5603 sets TOP_UPSTREAM_SOURCE_SHA to ci_merge_request_source_branch_sha5604 when CI_MERGE_REQUEST_SOURCE_BRANCH_SHA is set as empty5605 sets TOP_UPSTREAM_SOURCE_SHA to CI_COMMIT_SHA5606 when CI_MERGE_REQUEST_SOURCE_BRANCH_SHA is not set5607 sets TOP_UPSTREAM_SOURCE_SHA to CI_COMMIT_SHA5608 #invoke!5609 invokes the trigger with expected variables5610 #downstream_project_path5611 when GITLABCOM_DATABASE_TESTING_PROJECT_PATH is set5612 triggers the pipeline on the correct project5613 #ref5614 when GITLABCOM_DATABASE_TESTING_TRIGGER_REF is set5615 triggers the pipeline on the correct ref5616 when no MR notes with the identifier exist yet5617 posts a new note5618AutoDevopsHelper5619 .show_auto_devops_callout?5620 when auto devops is implicitly enabled5621 is expected to eq false5622 when auto devops is not implicitly enabled5623 is expected to eq true5624 when the banner is disabled by feature flag5625 is expected to be falsy5626 when dismissed5627 is expected to eq false5628 when user cannot admin project5629 is expected to eq false5630 when auto devops is enabled system-wide5631 is expected to eq false5632 when auto devops is explicitly enabled for project5633 is expected to eq false5634 when auto devops is explicitly disabled for project5635 is expected to eq false5636 when master contains a .gitlab-ci.yml file5637 is expected to eq false5638 when another service is enabled5639 is expected to eq false5640 #auto_devops_settings_path5641 returns auto devops settings path5642 #badge_for_auto_devops_scope5643 when receiver is a group5644 when explicitly enabled5645 is expected to eq "group enabled"5646 when explicitly disabled5647 is expected to be nil5648 when auto devops is implicitly enabled5649 by instance5650 is expected to eq "instance enabled"5651 with groups5652 when auto devops is enabled on parent5653 is expected to eq "group enabled"5654 when auto devops is enabled on parent group5655 is expected to eq "group enabled"5656 when auto devops disabled set on parent group5657 is expected to be nil5658 when receiver is a project5659 when auto devops is enabled at project level5660 is expected to be nil5661 when auto devops is disabled at project level5662 is expected to be nil5663 when auto devops is implicitly enabled5664 by instance5665 is expected to eq "instance enabled"5666 with groups5667 when auto devops is enabled on group level5668 is expected to eq "group enabled"5669 when auto devops is enabled on root group5670 is expected to eq "group enabled"5671 when auto devops is implicitly disabled5672 by instance5673 is expected to be nil5674 with groups5675 when auto devops is disabled on group level5676 is expected to be nil5677 when root group is enabled and parent disabled5678 is expected to be nil5679ErrorTracking::IssueUpdateService5680 # order random5681 #execute5682 with authorized user5683 when update_issue returns success5684 returns the response5685 updates any related issue5686 clears the reactive cache5687 with related issue and resolving5688 closes the issue5689 when issue gets closed5690 creates a system note5691 returns a response with closed issue5692 when issue is already closed5693 does not call the close issue service5694 does not create system note5695 when status is not resolving5696 does not call the close issue service5697 does not create system note5698 when update_issue returns error5699 returns the error5700 with integrated error tracking5701 when update succeeded5702 returns success with updated true5703 when update failed5704 returns success with updated false5705 with unauthorized user5706 returns error5707 with error tracking disabled5708 raises error5709Issues::ZoomLinkService5710 #add_link5711 without existing Zoom meeting5712 when updating an issue5713 appends the new meeting to zoom_meetings5714 tracks the add event5715 creates a zoom_link_added notification5716 issue is incident type5717 behaves like an incident management tracked event5718 .track_event5719 tracks the event using redis5720 behaves like Snowplow event tracking with RedisHLL context5721 behaves like Snowplow event tracking5722 is emitted5723 with insufficient issue update permissions5724 cannot add the meeting5725 creates no notification5726 when creating an issue5727 creates a new zoom meeting5728 with insufficient issue create permissions5729 cannot add the meeting5730 creates no notification5731 with invalid Zoom url5732 cannot add the meeting5733 creates no notification5734 with "added" Zoom meeting5735 cannot add the meeting5736 creates no notification5737 with "added" Zoom meeting and race condition5738 cannot add the meeting5739 creates no notification5740 #can_add_link?5741 without "added" zoom meeting5742 is expected to eq true5743 with insufficient issue update permissions5744 is expected to eq false5745 with Zoom meeting in the issue description5746 is expected to eq false5747 #remove_link5748 with Zoom meeting5749 with existing issue5750 creates no notification5751 can remove the meeting5752 tracks the remove event5753 without existing issue5754 cannot remove the meeting5755 creates no notification5756 with insufficient issue update permissions5757 cannot remove the meeting5758 creates no notification5759 without "added" Zoom meeting5760 cannot remove the meeting5761 creates no notification5762 #can_remove_link?5763 without Zoom meeting5764 is expected to eq false5765 with only "removed" zoom meetings5766 is expected to eq false5767 with "added" Zoom meeting5768 is expected to eq true5769 with "removed" zoom meetings5770 is expected to eq true5771 with insufficient issue update permissions5772 is expected to eq false5773 #parse_link5774 with valid Zoom links5775 description: "Some text https://zoom.us/j/123456789 more text"5776 is expected to eq "https://zoom.us/j/123456789"5777 description: "Mixed https://zoom.us/j/123456789 http://example.com"5778 is expected to eq "https://zoom.us/j/123456789"5779 description: "Multiple link https://zoom.us/my/name https://zoom.us/j/123456789"5780 is expected to eq "https://zoom.us/j/123456789"5781 with invalid Zoom links5782 description: nil5783 is expected to eq nil5784 description: ""5785 is expected to eq nil5786 description: "Text only"5787 is expected to eq nil5788 description: "Non-Zoom http://example.com"5789 is expected to eq nil5790 description: "Almost Zoom http://zoom.us"5791 is expected to eq nil5792Gitlab::Ci::Config::Entry::Retry5793 #value5794 when retry value is a numeric5795 is returned as a hash with max key5796 when retry value is a hash5797 and `when` is a string5798 returns when wrapped in an array5799 and `when` is an array5800 returns when as it was passed5801 validation5802 when retry value is correct5803 when it is a numeric5804 is valid5805 when it is a hash5806 with max5807 is valid5808 with string when5809 is valid5810 with string when always5811 is valid5812 with array when5813 is valid5814 with when from documentation `always`5815 is valid5816 with when from documentation `unknown_failure`5817 is valid5818 with when from documentation `script_failure`5819 is valid5820 with when from documentation `api_failure`5821 is valid5822 with when from documentation `stuck_or_timeout_failure`5823 is valid5824 with when from documentation `runner_system_failure`5825 is valid5826 with when from documentation `runner_unsupported`5827 is valid5828 with when from documentation `stale_schedule`5829 is valid5830 with when from documentation `job_execution_timeout`5831 is valid5832 with when from documentation `archived_failure`5833 is valid5834 with when from documentation `unmet_prerequisites`5835 is valid5836 with when from documentation `scheduler_failure`5837 is valid5838 with when from documentation `data_integrity_failure`5839 is valid5840 with when from CommitStatus.failure_reasons `unknown_failure`5841 is valid5842 with when from CommitStatus.failure_reasons `script_failure`5843 is valid5844 with when from CommitStatus.failure_reasons `api_failure`5845 is valid5846 with when from CommitStatus.failure_reasons `stuck_or_timeout_failure`5847 is valid5848 with when from CommitStatus.failure_reasons `runner_system_failure`5849 is valid5850 with when from CommitStatus.failure_reasons `missing_dependency_failure`5851 is valid5852 with when from CommitStatus.failure_reasons `runner_unsupported`5853 is valid5854 with when from CommitStatus.failure_reasons `stale_schedule`5855 is valid5856 with when from CommitStatus.failure_reasons `job_execution_timeout`5857 is valid5858 with when from CommitStatus.failure_reasons `archived_failure`5859 is valid5860 with when from CommitStatus.failure_reasons `unmet_prerequisites`5861 is valid5862 with when from CommitStatus.failure_reasons `scheduler_failure`5863 is valid5864 with when from CommitStatus.failure_reasons `data_integrity_failure`5865 is valid5866 with when from CommitStatus.failure_reasons `forward_deployment_failure`5867 is valid5868 with when from CommitStatus.failure_reasons `user_blocked`5869 is valid5870 with when from CommitStatus.failure_reasons `project_deleted`5871 is valid5872 with when from CommitStatus.failure_reasons `ci_quota_exceeded`5873 is valid5874 with when from CommitStatus.failure_reasons `pipeline_loop_detected`5875 is valid5876 with when from CommitStatus.failure_reasons `no_matching_runner`5877 is valid5878 with when from CommitStatus.failure_reasons `trace_size_exceeded`5879 is valid5880 with when from CommitStatus.failure_reasons `builds_disabled`5881 is valid5882 with when from CommitStatus.failure_reasons `environment_creation_failure`5883 is valid5884 with when from CommitStatus.failure_reasons `deployment_rejected`5885 is valid5886 with when from CommitStatus.failure_reasons `failed_outdated_deployment_job`5887 is valid5888 with when from CommitStatus.failure_reasons `protected_environment_failure`5889 is valid5890 with when from CommitStatus.failure_reasons `insufficient_bridge_permissions`5891 is valid5892 with when from CommitStatus.failure_reasons `downstream_bridge_project_not_found`5893 is valid5894 with when from CommitStatus.failure_reasons `invalid_bridge_trigger`5895 is valid5896 with when from CommitStatus.failure_reasons `upstream_bridge_project_not_found`5897 is valid5898 with when from CommitStatus.failure_reasons `insufficient_upstream_permissions`5899 is valid5900 with when from CommitStatus.failure_reasons `bridge_pipeline_is_child_pipeline`5901 is valid5902 with when from CommitStatus.failure_reasons `downstream_pipeline_creation_failed`5903 is valid5904 with when from CommitStatus.failure_reasons `secrets_provider_not_found`5905 is valid5906 with when from CommitStatus.failure_reasons `reached_max_descendant_pipelines_depth`5907 is valid5908 with when from CommitStatus.failure_reasons `ip_restriction_failure`5909 is valid5910 with when from CommitStatus.failure_reasons `reached_max_pipeline_hierarchy_size`5911 is valid5912 when retry value is not correct5913 when it is not a numeric nor an array5914 returns error about invalid type5915 when it is a numeric5916 when it is lower than zero5917 returns error about value too low5918 when it is not an integer5919 returns error about wrong value5920 when the value is too high5921 returns error about value too high5922 when it is a hash5923 with unknown keys5924 returns error about the unknown key5925 with max lower than zero5926 returns error about value too low5927 with max not an integer5928 returns error about wrong value5929 iwth max too high5930 returns error about value too high5931 with when in wrong format5932 returns error about the wrong format5933 with an unknown when string5934 returns error about the wrong format5935 with an unknown failure reason in a when array5936 returns error about the wrong format5937Gitlab::LegacyGithubImport::PullRequestFormatter5938 when importing a GitHub project5939 behaves like Gitlab::LegacyGithubImport::PullRequestFormatter#attributes5940 when pull request is open5941 returns formatted attributes5942 when pull request is closed5943 returns formatted attributes5944 when pull request is merged5945 returns formatted attributes5946 when it is assigned to someone5947 returns nil as assignee_id when is not a GitLab user5948 returns GitLab user id associated with GitHub id as assignee_id5949 returns GitLab user id associated with GitHub email as assignee_id5950 when author is a GitLab user5951 returns project creator_id as author_id when is not a GitLab user5952 returns GitLab user id associated with GitHub id as author_id5953 returns GitLab user id associated with GitHub email as author_id5954 returns description without created at tag line5955 when it has a milestone5956 returns nil when milestone does not exist5957 returns milestone when it exists5958 behaves like Gitlab::LegacyGithubImport::PullRequestFormatter#number5959 returns pull request number5960 behaves like Gitlab::LegacyGithubImport::PullRequestFormatter#source_branch_name5961 when source branch exists5962 returns branch ref5963 when source branch does not exist5964 prefixes branch name with gh-:short_sha/:number/:user pattern to avoid collision5965 when source branch is from a fork5966 prefixes branch name with gh-:short_sha/:number/:user pattern to avoid collision5967 when source branch is from a deleted fork5968 prefixes branch name with gh-:short_sha/:number/:user pattern to avoid collision5969 behaves like Gitlab::LegacyGithubImport::PullRequestFormatter#target_branch_name5970 when target branch exists5971 returns branch ref5972 when target branch does not exist5973 prefixes branch name with gh-:short_sha/:number/:user pattern to avoid collision5974 when importing a Gitea project5975 behaves like Gitlab::LegacyGithubImport::PullRequestFormatter#attributes5976 when pull request is open5977 returns formatted attributes5978 when pull request is closed5979 returns formatted attributes5980 when pull request is merged5981 returns formatted attributes5982 when it is assigned to someone5983 returns nil as assignee_id when is not a GitLab user5984 returns GitLab user id associated with GitHub id as assignee_id5985 returns GitLab user id associated with GitHub email as assignee_id5986 when author is a GitLab user5987 returns project creator_id as author_id when is not a GitLab user5988 returns GitLab user id associated with GitHub id as author_id5989 returns GitLab user id associated with GitHub email as author_id5990 returns description without created at tag line5991 when it has a milestone5992 returns nil when milestone does not exist5993 returns milestone when it exists5994 behaves like Gitlab::LegacyGithubImport::PullRequestFormatter#number5995 returns pull request number5996 behaves like Gitlab::LegacyGithubImport::PullRequestFormatter#source_branch_name5997 when source branch exists5998 returns branch ref5999 when source branch does not exist6000 prefixes branch name with gh-:short_sha/:number/:user pattern to avoid collision6001 when source branch is from a fork6002 prefixes branch name with gh-:short_sha/:number/:user pattern to avoid collision6003 when source branch is from a deleted fork6004 prefixes branch name with gh-:short_sha/:number/:user pattern to avoid collision6005 behaves like Gitlab::LegacyGithubImport::PullRequestFormatter#target_branch_name6006 when target branch exists6007 returns branch ref6008 when target branch does not exist6009 prefixes branch name with gh-:short_sha/:number/:user pattern to avoid collision6010 #valid?6011 when source, and target repos are not a fork6012 returns true6013 when source repo is a fork6014 returns true6015 when target repo is a fork6016 returns true6017 #cross_project?6018 when source and target repositories are different6019 returns true6020 when source repository does not exist anymore6021 returns true6022 when source and target repositories are the same6023 returns false6024 #source_branch_exists?6025 returns false when is a cross_project6026 #url6027 return raw url6028 #opened?6029 returns true when state is "open"6030Users::BuildService6031 #execute6032 with nil current_user6033 behaves like common user build items6034 is expected to be valid6035 sets the created_by_id6036 calls UpdateCanonicalEmailService6037 when user_type is provided6038 when project_bot6039 is expected to equal true6040 when not a project_bot6041 is expected to be human6042 behaves like current user not admin build items6043 when "email_confirmation_setting" application setting is set to `hard`6044 does not confirm the user6045 when "email_confirmation_setting" application setting is set to `off`6046 confirms the user6047 with allowed params6048 sets all allowed attributes6049 with "user_default_external" application setting6050 user_default_external: true, external: nil, email: "fl@example.com", user_default_internal_regex: nil, result: true6051 sets the value of Gitlab::CurrentSettings.user_default_external6052 user_default_external: true, external: true, email: "fl@example.com", user_default_internal_regex: nil, result: true6053 sets the value of Gitlab::CurrentSettings.user_default_external6054 user_default_external: true, external: false, email: "fl@example.com", user_default_internal_regex: nil, result: true6055 sets the value of Gitlab::CurrentSettings.user_default_external6056 user_default_external: true, external: nil, email: "fl@example.com", user_default_internal_regex: "", result: true6057 sets the value of Gitlab::CurrentSettings.user_default_external6058 user_default_external: true, external: true, email: "fl@example.com", user_default_internal_regex: "", result: true6059 sets the value of Gitlab::CurrentSettings.user_default_external6060 user_default_external: true, external: false, email: "fl@example.com", user_default_internal_regex: "", result: true6061 sets the value of Gitlab::CurrentSettings.user_default_external6062 user_default_external: true, external: nil, email: "fl@example.com", user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?", result: false6063 sets the value of Gitlab::CurrentSettings.user_default_external6064 user_default_external: true, external: true, email: "fl@example.com", user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?", result: false6065 sets the value of Gitlab::CurrentSettings.user_default_external6066 user_default_external: true, external: false, email: "fl@example.com", user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?", result: false6067 sets the value of Gitlab::CurrentSettings.user_default_external6068 user_default_external: true, external: nil, email: "tester.ext@domain.com", user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?", result: true6069 sets the value of Gitlab::CurrentSettings.user_default_external6070 user_default_external: true, external: true, email: "tester.ext@domain.com", user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?", result: true6071 sets the value of Gitlab::CurrentSettings.user_default_external6072 user_default_external: true, external: false, email: "tester.ext@domain.com", user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?", result: true6073 sets the value of Gitlab::CurrentSettings.user_default_external6074 user_default_external: false, external: nil, email: "fl@example.com", user_default_internal_regex: nil, result: false6075 sets the value of Gitlab::CurrentSettings.user_default_external6076 user_default_external: false, external: true, email: "fl@example.com", user_default_internal_regex: nil, result: false6077 sets the value of Gitlab::CurrentSettings.user_default_external6078 user_default_external: false, external: false, email: "fl@example.com", user_default_internal_regex: nil, result: false6079 sets the value of Gitlab::CurrentSettings.user_default_external6080 user_default_external: false, external: nil, email: "fl@example.com", user_default_internal_regex: "", result: false6081 sets the value of Gitlab::CurrentSettings.user_default_external6082 user_default_external: false, external: true, email: "fl@example.com", user_default_internal_regex: "", result: false6083 sets the value of Gitlab::CurrentSettings.user_default_external6084 user_default_external: false, external: false, email: "fl@example.com", user_default_internal_regex: "", result: false6085 sets the value of Gitlab::CurrentSettings.user_default_external6086 user_default_external: false, external: nil, email: "fl@example.com", user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?", result: false6087 sets the value of Gitlab::CurrentSettings.user_default_external6088 user_default_external: false, external: true, email: "fl@example.com", user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?", result: false6089 sets the value of Gitlab::CurrentSettings.user_default_external6090 user_default_external: false, external: false, email: "fl@example.com", user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?", result: false6091 sets the value of Gitlab::CurrentSettings.user_default_external6092 user_default_external: false, external: nil, email: "tester.ext@domain.com", user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?", result: false6093 sets the value of Gitlab::CurrentSettings.user_default_external6094 user_default_external: false, external: true, email: "tester.ext@domain.com", user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?", result: false6095 sets the value of Gitlab::CurrentSettings.user_default_external6096 user_default_external: false, external: false, email: "tester.ext@domain.com", user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?", result: false6097 sets the value of Gitlab::CurrentSettings.user_default_external6098 with non admin current_user6099 raises AccessDeniedError exception6100 with an admin current_user6101 behaves like common user build items6102 is expected to be valid6103 sets the created_by_id6104 calls UpdateCanonicalEmailService6105 when user_type is provided6106 when project_bot6107 is expected to equal true6108 when not a project_bot6109 is expected to be human6110 with allowed params6111 sets all allowed attributes6112 with "user_default_external" application setting6113 user_default_external: true, external: nil, email: "fl@example.com", user_default_internal_regex: nil, result: true6114 sets the value of Gitlab::CurrentSettings.user_default_external6115 user_default_external: true, external: true, email: "fl@example.com", user_default_internal_regex: nil, result: true6116 sets the value of Gitlab::CurrentSettings.user_default_external6117 user_default_external: true, external: false, email: "fl@example.com", user_default_internal_regex: nil, result: false6118 sets the value of Gitlab::CurrentSettings.user_default_external6119 user_default_external: true, external: nil, email: "fl@example.com", user_default_internal_regex: "", result: true6120 sets the value of Gitlab::CurrentSettings.user_default_external6121 user_default_external: true, external: true, email: "fl@example.com", user_default_internal_regex: "", result: true6122 sets the value of Gitlab::CurrentSettings.user_default_external6123 user_default_external: true, external: false, email: "fl@example.com", user_default_internal_regex: "", result: false6124 sets the value of Gitlab::CurrentSettings.user_default_external6125 user_default_external: true, external: nil, email: "fl@example.com", user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?", result: false6126 sets the value of Gitlab::CurrentSettings.user_default_external6127 user_default_external: true, external: true, email: "fl@example.com", user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?", result: true6128 sets the value of Gitlab::CurrentSettings.user_default_external6129 user_default_external: true, external: false, email: "fl@example.com", user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?", result: false6130 sets the value of Gitlab::CurrentSettings.user_default_external6131 user_default_external: true, external: nil, email: "tester.ext@domain.com", user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?", result: true6132 sets the value of Gitlab::CurrentSettings.user_default_external6133 user_default_external: true, external: true, email: "tester.ext@domain.com", user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?", result: true6134 sets the value of Gitlab::CurrentSettings.user_default_external6135 user_default_external: true, external: false, email: "tester.ext@domain.com", user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?", result: false6136 sets the value of Gitlab::CurrentSettings.user_default_external6137 user_default_external: false, external: nil, email: "fl@example.com", user_default_internal_regex: nil, result: false6138 sets the value of Gitlab::CurrentSettings.user_default_external6139 user_default_external: false, external: true, email: "fl@example.com", user_default_internal_regex: nil, result: true6140 sets the value of Gitlab::CurrentSettings.user_default_external6141 user_default_external: false, external: false, email: "fl@example.com", user_default_internal_regex: nil, result: false6142 sets the value of Gitlab::CurrentSettings.user_default_external6143 user_default_external: false, external: nil, email: "fl@example.com", user_default_internal_regex: "", result: false6144 sets the value of Gitlab::CurrentSettings.user_default_external6145 user_default_external: false, external: true, email: "fl@example.com", user_default_internal_regex: "", result: true6146 sets the value of Gitlab::CurrentSettings.user_default_external6147 user_default_external: false, external: false, email: "fl@example.com", user_default_internal_regex: "", result: false6148 sets the value of Gitlab::CurrentSettings.user_default_external6149 user_default_external: false, external: nil, email: "fl@example.com", user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?", result: false6150 sets the value of Gitlab::CurrentSettings.user_default_external6151 user_default_external: false, external: true, email: "fl@example.com", user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?", result: true6152 sets the value of Gitlab::CurrentSettings.user_default_external6153 user_default_external: false, external: false, email: "fl@example.com", user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?", result: false6154 sets the value of Gitlab::CurrentSettings.user_default_external6155 user_default_external: false, external: nil, email: "tester.ext@domain.com", user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?", result: false6156 sets the value of Gitlab::CurrentSettings.user_default_external6157 user_default_external: false, external: true, email: "tester.ext@domain.com", user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?", result: true6158 sets the value of Gitlab::CurrentSettings.user_default_external6159 user_default_external: false, external: false, email: "tester.ext@domain.com", user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?", result: false6160 sets the value of Gitlab::CurrentSettings.user_default_external6161Gitlab::Redis::RepositoryCache6162 # order random6163 behaves like redis_shared_examples6164 .config_file_name6165 when there is no config file anywhere6166 is expected to be nil6167 .store6168 with old format6169 behaves like redis store6170 instantiates Redis::Store6171 with the namespace6172 uses specified namespace6173 with new format6174 behaves like redis store6175 instantiates Redis::Store6176 with the namespace6177 uses specified namespace6178 .params6179 withstands mutation6180 when url contains unix socket reference6181 with old format6182 returns path key instead6183 with new format6184 returns path key instead6185 when url is host based6186 with old format6187 returns hash with host, port, db, and password6188 with new format6189 rails_env: "development", host: "development-host"6190 returns hash with host, port, db, and password6191 rails_env: "test", host: "test-host"6192 returns hash with host, port, db, and password6193 rails_env: "production", host: "production-host"6194 returns hash with host, port, db, and password6195 with redis cluster format6196 rails_env: "development", host: "development-master"6197 returns hash with cluster and password6198 rails_env: "test", host: "test-master"6199 returns hash with cluster and password6200 rails_env: "production", host: "production-master"6201 returns hash with cluster and password6202 .url6203 withstands mutation6204 when yml file with env variable6205 reads redis url from env variable6206 .version6207 returns a version6208 .with6209 when running on single-threaded runtime6210 instantiates a connection pool with size 56211 when running on multi-threaded runtime6212 instantiates a connection pool with a size based on the concurrency of the worker6213 when there is no config at all6214 can run an empty block6215 #db6216 with old format6217 returns the correct db6218 with new format6219 returns the correct db6220 with cluster-mode6221 returns the correct db6222 #sentinels6223 when sentinels are defined6224 rails_env: "development", hosts: ["development-replica1", "development-replica2"]6225 returns an array of hashes with host and port keys6226 rails_env: "test", hosts: ["test-replica1", "test-replica2"]6227 returns an array of hashes with host and port keys6228 rails_env: "production", hosts: ["production-replica1", "production-replica2"]6229 returns an array of hashes with host and port keys6230 when sentinels are not defined6231 returns nil6232 when cluster is defined6233 returns nil6234 #sentinels?6235 when sentinels are defined6236 returns true6237 when sentinels are not defined6238 is expected to eq nil6239 when cluster is defined6240 returns false6241 #raw_config_hash6242 returns old-style single url config in a hash6243 returns cluster config without url key in a hash6244 #parse_client_tls_options6245 when configuration does not have TLS related options6246 returns the coniguration as-is6247 when specified certificate file does not exist6248 raises error about missing certificate file6249 when specified key file does not exist6250 raises error about missing key file6251 when only certificate file is specified6252 renders resque.yml correctly6253 when only key file is specified6254 renders resque.yml correctly6255 when configuration valid TLS related options6256 converts cert_file and key_file appropriately6257 #fetch_config6258 raises an exception when the config file contains invalid yaml6259 when redis.yml exists6260 uses config/redis.yml6261 when no config file exsits6262 returns nil6263 when resque.yml exists6264 returns the config from resque.yml6265 .cache_store6266 has a default ttl of 8 hours6267 #fetch_config6268 when redis.yml exists6269 when the fallback has a redis.yml entry6270 is expected to eq {"fallback redis.yml"=>123}6271 and an instance config file exists6272 is expected to eq {"instance specific file"=>456}6273 and the instance has a redis.yml entry6274 is expected to eq {"instance redis.yml"=>789}6275 when no redis config file exsits6276 returns nil6277 when resque.yml exists6278 returns the config from resque.yml6279Suggestions::CreateService6280 #execute6281 should not try to parse suggestions6282 when not a diff note for merge requests6283 does not try to parse suggestions6284 behaves like service not tracking add suggestion event6285 does not track add suggestion event6286 when diff note is not for text6287 does not try to parse suggestions6288 behaves like service not tracking add suggestion event6289 does not track add suggestion event6290 when diff file is not found6291 creates no suggestion6292 behaves like service not tracking add suggestion event6293 does not track add suggestion event6294 should create suggestions6295 persists suggestion records6296 persists suggestions data correctly6297 tracks add suggestion event6298 outdated position note6299 uses the correct position when creating the suggestion6300 when a patch removes an empty line6301 creates an appliable suggestion6302Gitlab::Cache::Ci::ProjectPipelineStatus6303 .load_for_project6304 loads the status6305 loading in batches6306 .load_in_batch_for_projects6307 loads pipeline_status on projects6308 loads 10 projects without hitting Gitaly call limit6309 .update_for_pipeline6310 refreshes the cache if nescessary6311 #has_status?6312 is false when the status wasn't loaded yet6313 is true when all status information was loaded6314 #load_status6315 loads the status from the cache when there is one6316 loads the status from the project commit when there is no cache6317 stores the status in the cache when it loading it from the project6318 sets the state to loaded6319 only loads the status once6320 handles Gitaly unavailable exceptions gracefully6321 handles Gitaly timeout exceptions gracefully6322 gitaly call counts6323 not cached6324 makes a Gitaly call6325 cached6326 makes no Gitaly calls6327 #load_from_project6328 reads the status from the pipeline for the commit6329 doesn't fail for an empty project6330 #store_in_cache6331 sets the object in caching6332 #store_in_cache_if_needed6333 stores the state in the cache when the sha is the HEAD of the project6334 doesn't store the status in redis_cache when the sha is not the head of the project6335 deletes the cache if the repository doesn't have a head commit6336 with a status in caching6337 #load_from_cache6338 reads the status from redis_cache6339 refreshes ttl6340 when status is empty string6341 reads the status as nil6342 #has_cache?6343 knows the status is cached6344 #delete_from_cache6345 deletes values from redis_cache6346Gitlab::Database::LoadBalancing::ServiceDiscovery6347 #initialize6348 :record_type6349 with a supported type6350 is expected to eq 336351 with an unsupported type6352 raises an argument error6353 #start6354 starts service discovery in a new thread with proper assignments6355 #perform_service_discovery6356 without any failures6357 runs once6358 with StandardError6359 retries service discovery when under the retry limit6360 does not retry service discovery after exceeding the limit6361 reports exceptions to Sentry6362 #refresh_if_necessary6363 when a refresh is necessary6364 refreshes the load balancer hosts6365 when a refresh is not necessary6366 does not refresh the load balancer hosts6367 #replace_hosts6368 replaces the hosts of the load balancer6369 disconnects the old connections gracefully if possible6370 disconnects the old connections forcefully if necessary6371 without old hosts6372 does not log any load balancing event6373 #addresses_from_dns6374 with an A record6375 returns a TTL and ordered list of IP addresses6376 with an SRV record6377 returns a TTL and ordered list of hosts6378 when max_replica_pools is set6379 when the number of addresses exceeds max_replica_pools6380 limits to max_replica_pools6381 when the number of addresses is less than max_replica_pools6382 returns all addresses6383 when the resolver returns an empty response6384 raises EmptyDnsResponse6385 #new_wait_time_for6386 returns the DNS TTL if greater than the default interval6387 returns the default interval if greater than the DNS TTL6388 returns the default interval if no resources are given6389 #addresses_from_load_balancer6390 returns the ordered host names of the load balancer6391 #resolver6392 without predefined resolver6393 fetches a new resolver and assigns it to the instance variable6394 with predefined resolver6395 when nameserver's TTL is in the future6396 returns the existing resolver6397 when nameserver's TTL is in the past6398 fetches new resolver6399 #log_refresh_thread_interruption6400 without refresh thread timestamp6401 does not log any interruption6402 with refresh thread timestamp6403 does not log if last run time plus delta is in future6404 with way past last run timestamp6405 does not log if the interruption is already logged6406 logs the error if the interruption was not logged before6407 with service discovery connected to a real load balancer6408 configures service discovery with three replicas6409 swaps the hosts out gracefully when not contended6410 swaps the hosts out forcefully when contended6411Ci::PipelineArtifacts::DestroyAllExpiredService6412 .execute6413 when timeout happens6414 returns 0 and does not continue destroying6415 when there are no artifacts6416 does not raise error6417 when the loop limit is reached6418 destroys one artifact6419 reports the number of destroyed artifacts6420 when there are artifacts more than batch sizes6421 destroys all expired artifacts6422 reports the number of destroyed artifacts6423 when artifacts are not expired6424 does not destroy pipeline artifacts6425 reports the number of destroyed artifacts6426 when pipeline is locked6427 does not destroy pipeline artifacts6428 reports the number of destroyed artifacts6429 with unlocked pipeline artifacts6430 destroys all expired artifacts6431 when the loop limit is reached6432 destroys one artifact6433 reports the number of destroyed artifacts6434 .destroy_artifacts_batch6435 returns a falsy value without artifacts6436Packages::Conan::FileMetadatum6437 relationships6438 is expected to belong to package_file required: false6439 validations6440 is expected to validate that :package_file cannot be empty/falsy6441 is expected to validate that :recipe_revision cannot be empty/falsy6442 #recipe_revision6443 is expected to allow :recipe_revision to be ‹"0"›6444 is expected not to allow :recipe_revision to be ‹nil›6445 #package_revision_for_package_file6446 recipe file6447 is valid with empty value6448 is invalid with value6449 package file6450 is valid with default value6451 is invalid with non-default value6452 #conan_package_reference_for_package_file6453 recipe file6454 is valid with empty value6455 is invalid with value6456 package file6457 is valid with acceptable value6458 is invalid with invalid value6459 is invalid when nil6460 #conan_package_type6461 validates package of type conan6462Gitlab::Ci::Pipeline::Seed::Stage6463 #size6464 returns a number of jobs in the stage6465 #attributes6466 returns hash attributes of a stage6467 #included?6468 when it contains builds seeds6469 is expected to be included6470 when it does not contain build seeds6471 is expected not to be included6472 #seeds6473 returns build seeds6474 returns build seeds including valid attributes6475 filters seeds using only/except policies6476 when a legacy trigger exists6477 returns build seeds including legacy trigger6478 when a ref is protected6479 returns protected builds6480 when a ref is not protected6481 returns unprotected builds6482 #seeds_names6483 returns all job names6484 returns a set6485 #seeds_errors6486 returns all errors from seeds6487 #to_resource6488 builds a valid stage object with all builds6489 can not be persisted without explicit pipeline assignment6490Feature::Definition6491 #key6492 returns a symbol from name6493 #validate!6494 param: :name, value: "colon:separated", result: /Feature flag 'colon:separated' is invalid/6495 is expected to raise /Feature flag 'colon:separated' is invalid/6496 param: :name, value: "space separated", result: /Feature flag 'space separated' is invalid/6497 is expected to raise /Feature flag 'space separated' is invalid/6498 param: :name, value: "ALL_CAPS", result: /Feature flag 'ALL_CAPS' is invalid/6499 is expected to raise /Feature flag 'ALL_CAPS' is invalid/6500 param: :name, value: nil, result: /Feature flag is missing name/6501 is expected to raise /Feature flag is missing name/6502 param: :path, value: nil, result: /Feature flag 'feature_flag' is missing path/6503 is expected to raise /Feature flag 'feature_flag' is missing path/6504 param: :type, value: nil, result: /Feature flag 'feature_flag' is missing type/6505 is expected to raise /Feature flag 'feature_flag' is missing type/6506 param: :type, value: "invalid", result: /Feature flag 'feature_flag' type 'invalid' is invalid/6507 is expected to raise /Feature flag 'feature_flag' type 'invalid' is invalid/6508 param: :path, value: "development/invalid.yml", result: /Feature flag 'feature_flag' has an invalid path/6509 is expected to raise /Feature flag 'feature_flag' has an invalid path/6510 param: :path, value: "invalid/feature_flag.yml", result: /Feature flag 'feature_flag' has an invalid type/6511 is expected to raise /Feature flag 'feature_flag' has an invalid type/6512 param: :default_enabled, value: nil, result: /Feature flag 'feature_flag' is missing default_enabled/6513 is expected to raise /Feature flag 'feature_flag' is missing default_enabled/6514 #valid_usage!6515 validates type6516 raises exception for invalid type6517 .paths6518 returns at least one path6519 .load_from_file6520 properly loads a definition from file6521 for missing file6522 raises exception6523 for invalid definition6524 raises exception6525 .load_all!6526 when there's no feature flags a list of definitions is empty6527 when there's a single feature flag it properly loads them6528 when the same feature flag is stored multiple times raises exception6529 when one of the YAMLs is invalid it does raise exception6530 .for_upcoming_milestone?6531 ctx: "no milestone", milestone: nil, current_milestone: "1.0.0", expected: false6532 is expected to equal false6533 ctx: "upcoming milestone - major", milestone: "2.3", current_milestone: "1.9.999", expected: true6534 is expected to equal true6535 ctx: "upcoming milestone - minor", milestone: "2.3", current_milestone: "2.2.999", expected: true6536 is expected to equal true6537 ctx: "current milestone", milestone: "2.3", current_milestone: "2.3.999", expected: true6538 is expected to equal true6539 ctx: "past milestone - major", milestone: "1.9", current_milestone: "2.3.999", expected: false6540 is expected to equal false6541 ctx: "past milestone - minor", milestone: "2.2", current_milestone: "2.3.999", expected: false6542 is expected to equal false6543 .valid_usage!6544 when a known feature flag is used6545 validates it usage6546 when an unknown feature flag is used6547 for a type that is required to have all feature flags registered6548 raises exception6549 for a type that is optional6550 does not raise exception6551 for an unknown type6552 raises exception6553 .log_states?6554 ctx: "When flag does not exist", key: :no_flag, milestone: "0.0", log_state_change: true, expected: false6555 is expected to equal false6556 ctx: "When flag is old, and logging is not forced", key: :enabled_feature_flag, milestone: "0.0", log_state_change: false, expected: false6557 is expected to equal false6558 ctx: "When flag is old, but logging is forced", key: :enabled_feature_flag, milestone: "0.0", log_state_change: true, expected: true6559 is expected to equal true6560 ctx: "When flag is current", key: :enabled_feature_flag, milestone: "10.0", log_state_change: true, expected: true6561 is expected to equal true6562 ctx: "Flag is upcoming", key: :enabled_feature_flag, milestone: "10.0", log_state_change: true, expected: true6563 is expected to equal true6564 .default_enabled?6565 when feature flag exist6566 when default_enabled is true6567 returns the value from the definition6568 when default_enabled is false6569 returns the value from the definition6570 when feature flag does not exist6571 when passing default value6572 returns default value6573 when default value is undefined6574 when on dev or test environment6575 raises an error6576 when on production environment6577 returns false6578WorkItems::CreateAndLinkService6579 #execute6580 when work item params are valid6581 is expected to be success6582 creates a work item successfully with no links6583 behaves like title with extra spaces6584 when title has extra spaces6585 removes extra leading and trailing whitespaces from title6586 when link params are valid6587 when parent is not confidential6588 behaves like successful work item and link creator6589 creates a work item successfully with links6590 copies confidential status from the parent6591 when parent is confidential6592 behaves like successful work item and link creator6593 creates a work item successfully with links6594 copies confidential status from the parent6595 when link creation fails6596 is expected to be error6597 does not create a link and does not rollback transaction6598 returns a link creation error message6599 when work item params are invalid6600 is expected to be error6601 does not create a work item or links6602 returns work item errors6603DesignManagement::DesignPolicy6604 when DesignManagement is not enabled6605 behaves like design abilities not available6606 for owners6607 is expected to be disallowed :read_design, :create_design, :destroy_design, :move_design, and :update_design6608 for admins6609 is expected to be disallowed :read_design, :create_design, :destroy_design, :move_design, and :update_design6610 for maintainers6611 is expected to be disallowed :read_design, :create_design, :destroy_design, :move_design, and :update_design6612 for developers6613 is expected to be disallowed :read_design, :create_design, :destroy_design, :move_design, and :update_design6614 for reporters6615 is expected to be disallowed :read_design, :create_design, :destroy_design, :move_design, and :update_design6616 for guests6617 is expected to be disallowed :read_design, :create_design, :destroy_design, :move_design, and :update_design6618 for anonymous users6619 is expected to be disallowed :read_design, :create_design, :destroy_design, :move_design, and :update_design6620 when the feature is available6621 behaves like design abilities available for members6622 for owners6623 is expected to be allowed :read_design, :create_design, :destroy_design, :move_design, and :update_design6624 for admins6625 when admin mode enabled6626 is expected to be allowed :read_design, :create_design, :destroy_design, :move_design, and :update_design6627 when admin mode disabled6628 behaves like read-only design abilities6629 is expected to be allowed :read_design6630 is expected to be disallowed :create_design, :destroy_design, :move_design, and :update_design6631 for maintainers6632 is expected to be allowed :read_design, :create_design, :destroy_design, :move_design, and :update_design6633 for developers6634 is expected to be allowed :read_design, :create_design, :destroy_design, :move_design, and :update_design6635 for reporters6636 behaves like read-only design abilities6637 is expected to be allowed :read_design6638 is expected to be disallowed :create_design, :destroy_design, :move_design, and :update_design6639 for guests in private projects6640 behaves like read-only design abilities6641 is expected to be allowed :read_design6642 is expected to be disallowed :create_design, :destroy_design, :move_design, and :update_design6643 for anonymous users in public projects6644 behaves like read-only design abilities6645 is expected to be allowed :read_design6646 is expected to be disallowed :create_design, :destroy_design, :move_design, and :update_design6647 when the issue is confidential6648 behaves like design abilities available for members6649 for owners6650 is expected to be allowed :read_design, :create_design, :destroy_design, :move_design, and :update_design6651 for admins6652 when admin mode enabled6653 is expected to be allowed :read_design, :create_design, :destroy_design, :move_design, and :update_design6654 when admin mode disabled6655 behaves like read-only design abilities6656 is expected to be allowed :read_design6657 is expected to be disallowed :create_design, :destroy_design, :move_design, and :update_design6658 for maintainers6659 is expected to be allowed :read_design, :create_design, :destroy_design, :move_design, and :update_design6660 for developers6661 is expected to be allowed :read_design, :create_design, :destroy_design, :move_design, and :update_design6662 for reporters6663 behaves like read-only design abilities6664 is expected to be allowed :read_design6665 is expected to be disallowed :create_design, :destroy_design, :move_design, and :update_design6666 for guests6667 is expected to be disallowed :read_design, :create_design, :destroy_design, :move_design, and :update_design6668 for anonymous users6669 is expected to be disallowed :read_design, :create_design, :destroy_design, :move_design, and :update_design6670 when the project is archived6671 behaves like read-only design abilities6672 is expected to be allowed :read_design6673 is expected to be disallowed :create_design, :destroy_design, :move_design, and :update_design6674Clusters::Agents::Authorizations::CiAccess::RefreshService6675 # order random6676 #execute6677 group authorization6678 refreshes authorizations for the agent6679 config contains too many groups6680 authorizes groups up to the limit6681 config contains no groups6682 removes all authorizations6683 config contains groups outside of the configuration project hierarchy6684 removes all authorizations6685 configuration project does not belong to a group6686 removes all authorizations6687 project authorization6688 refreshes authorizations for the agent6689 project does not belong to a group, and is in the same namespace as the agent6690 creates an authorization record for the project6691 project does not belong to a group, and is authorizing itself6692 creates an authorization record for the project6693 config contains too many projects6694 authorizes projects up to the limit6695 config contains no groups6696 removes all authorizations6697 config contains groups outside of the configuration project hierarchy6698 removes all authorizations6699 configuration project does not belong to a group6700 removes all authorizations6701git_http routing6702 code repositories6703 behaves like git repository routes6704 routes Git endpoints6705 routes LFS endpoints6706 requests without .git format6707 redirects requests to /info/refs6708 behaves like git repository routes with fallback for git-upload-pack6709 routes LFS endpoints for unmatched routes6710 requests without .git format6711 does not redirect other requests6712 wiki repositories6713 in project6714 behaves like git repository routes6715 routes Git endpoints6716 routes LFS endpoints6717 requests without .git format6718 redirects requests to /info/refs6719 behaves like git repository routes with fallback for git-upload-pack6720 routes LFS endpoints for unmatched routes6721 requests without .git format6722 does not redirect other requests6723 redirects6724 redirects namespace/project.wiki.git to the project wiki6725 preserves query parameters6726 only redirects when the format is .git6727 in toplevel group6728 behaves like git repository routes6729 routes Git endpoints6730 routes LFS endpoints6731 requests without .git format6732 redirects requests to /info/refs6733 behaves like git repository routes with fallback for git-upload-pack6734 routes LFS endpoints for unmatched routes6735 requests without .git format6736 does not redirect other requests6737 in child group6738 behaves like git repository routes6739 routes Git endpoints6740 routes LFS endpoints6741 requests without .git format6742 redirects requests to /info/refs6743 behaves like git repository routes with fallback for git-upload-pack6744 routes LFS endpoints for unmatched routes6745 requests without .git format6746 does not redirect other requests6747 snippet repositories6748 personal snippet6749 behaves like git repository routes6750 routes Git endpoints6751 routes LFS endpoints6752 requests without .git format6753 redirects requests to /info/refs6754 behaves like git repository routes without fallback6755 routes LFS endpoints for unmatched routes6756 requests without .git format6757 does not redirect other requests6758 project snippet6759 behaves like git repository routes6760 routes Git endpoints6761 routes LFS endpoints6762 requests without .git format6763 redirects requests to /info/refs6764 behaves like git repository routes with fallback6765 routes LFS endpoints6766 requests without .git format6767 does not redirect other requests6768Gitlab::VisibilityLevel6769 .level_value6770 defaults to PRIVATE when string value is not valid6771 defaults to PRIVATE when integer value is not valid6772 string_value: "private", integer_value: 06773 converts 'private' to integer value 06774 converts string integer '0' to integer value 06775 defaults to PRIVATE when string integer value is not valid6776 defaults to PRIVATE when string value is not valid6777 string_value: "internal", integer_value: 106778 converts 'internal' to integer value 106779 converts string integer '10' to integer value 106780 defaults to PRIVATE when string integer value is not valid6781 defaults to PRIVATE when string value is not valid6782 string_value: "public", integer_value: 206783 converts 'public' to integer value 206784 converts string integer '20' to integer value 206785 defaults to PRIVATE when string integer value is not valid6786 defaults to PRIVATE when string value is not valid6787 when `fallback_value` is set to `nil`6788 returns `nil` when string value is not valid6789 returns `nil` when integer value is not valid6790 .levels_for_user6791 returns INTERNAL and PUBLIC for internal users6792 returns PUBLIC for external users6793 returns PUBLIC when no user is given6794 when admin mode is enabled6795 returns all levels for an admin6796 when admin mode is disabled6797 returns INTERNAL and PUBLIC for an admin6798 .allowed_levels6799 only includes the levels that arent restricted6800 returns all levels when no visibility level was set6801 .closest_allowed_level6802 picks INTERNAL instead of PUBLIC if public is restricted6803 picks PRIVATE if nothing is available6804 .valid_level?6805 returns true when visibility is valid6806 .restricted_level?, .non_restricted_level?, and .public_level_restricted?6807 visibility_levels: nil, expected_status: false6808 returns the expected status6809 visibility_levels: [0], expected_status: false6810 returns the expected status6811 visibility_levels: [0, 10], expected_status: false6812 returns the expected status6813 visibility_levels: [20], expected_status: true6814 returns the expected status6815 visibility_levels: [20, 10], expected_status: true6816 returns the expected status6817 .options6818 keys6819 returns the allowed visibility levels6820 .level_name6821 level_value: 0, level_name: "Private"6822 returns the name of the visibility level6823 level_value: 10, level_name: "Internal"6824 returns the name of the visibility level6825 level_value: 20, level_name: "Public"6826 returns the name of the visibility level6827 level_value: 2147483647, level_name: "Unknown"6828 returns the name of the visibility level6829Gitlab::GitalyClient::RefService6830 #branches6831 sends a find_all_branches message6832 #remote_branches6833 sends a find_all_remote_branches message6834 concatenates and returns the response branches as Gitlab::Git::Branch objects6835 #merged_branches6836 sends a find_all_branches message6837 #find_branch6838 sends a find_branch message6839 when Gitaly returns a ambiguios reference error6840 raises an UnknownRef error6841 #find_tag6842 sends a find_tag message6843 when tag is empty6844 does not send a fing_tag message6845 when Gitaly returns an Internal error6846 raises an Internal error6847 when Gitaly returns a tag_not_found error6848 raises an UnknownRef error6849 #default_branch_name6850 sends a find_default_branch_name message6851 #local_branches6852 sends a find_local_branches message6853 parses and sends the sort parameter6854 translates known mismatches on sort param values6855 uses default sort by name6856 #tags6857 sends a find_all_tags message6858 with sorting option6859 sends a correct find_all_tags message6860 with semantic version sorting6861 sends a correct find_all_tags message6862 when sorting option is invalid6863 uses default sort by name6864 with pagination option6865 sends a correct find_all_tags message6866 #branch_names_contains_sha6867 sends a list_branch_names_containing_commit message6868 #get_tag_messages6869 sends a get_tag_messages message6870 #get_tag_signatures6871 sends a get_tag_signatures message6872 #ref_exists?6873 sends a ref_exists message6874 #update_refs6875 sends a update_refs message6876 with a generic BadStatus error6877 raises the BadStatus error6878 with a reference state mismatch error6879 raises ReferencesLockedError6880 with a references locked error6881 raises ReferencesLockedError6882 with a invalid format error6883 raises InvalidRefFormatError6884 #delete_refs6885 sends a delete_refs message6886 with a references locked error6887 raises ReferencesLockedError6888 with a invalid format error6889 raises InvalidRefFormatError6890 #list_refs6891 sends a list_refs message6892 accepts a patterns argument6893 accepts a pointing_at_oids argument6894 accepts a peel_tags argument6895 #find_refs_by_oid6896 sends a find_refs_by_oid message6897 filters by ref_patterns6898Gitlab::Redis::SharedState6899 .config_file_name6900 when there is no config file anywhere6901 is expected to be nil6902 .store6903 with old format6904 behaves like redis store6905 instantiates Redis::Store6906 with the namespace6907 uses specified namespace6908 with new format6909 behaves like redis store6910 instantiates Redis::Store6911 with the namespace6912 uses specified namespace6913 .params6914 withstands mutation6915 when url contains unix socket reference6916 with old format6917 returns path key instead6918 with new format6919 returns path key instead6920 when url is host based6921 with old format6922 returns hash with host, port, db, and password6923 with new format6924 rails_env: "development", host: "development-host"6925 returns hash with host, port, db, and password6926 rails_env: "test", host: "test-host"6927 returns hash with host, port, db, and password6928 rails_env: "production", host: "production-host"6929 returns hash with host, port, db, and password6930 with redis cluster format6931 rails_env: "development", host: "development-master"6932 returns hash with cluster and password6933 rails_env: "test", host: "test-master"6934 returns hash with cluster and password6935 rails_env: "production", host: "production-master"6936 returns hash with cluster and password6937 .url6938 withstands mutation6939 when yml file with env variable6940 reads redis url from env variable6941 .version6942 returns a version6943 .with6944 when running on single-threaded runtime6945 instantiates a connection pool with size 56946 when running on multi-threaded runtime6947 instantiates a connection pool with a size based on the concurrency of the worker6948 when there is no config at all6949 can run an empty block6950 #db6951 with old format6952 returns the correct db6953 with new format6954 returns the correct db6955 with cluster-mode6956 returns the correct db6957 #sentinels6958 when sentinels are defined6959 rails_env: "development", hosts: ["development-replica1", "development-replica2"]6960 returns an array of hashes with host and port keys6961 rails_env: "test", hosts: ["test-replica1", "test-replica2"]6962 returns an array of hashes with host and port keys6963 rails_env: "production", hosts: ["production-replica1", "production-replica2"]6964 returns an array of hashes with host and port keys6965 when sentinels are not defined6966 returns nil6967 when cluster is defined6968 returns nil6969 #sentinels?6970 when sentinels are defined6971 returns true6972 when sentinels are not defined6973 is expected to eq nil6974 when cluster is defined6975 returns false6976 #raw_config_hash6977 returns old-style single url config in a hash6978 returns cluster config without url key in a hash6979 #parse_client_tls_options6980 when configuration does not have TLS related options6981 returns the coniguration as-is6982 when specified certificate file does not exist6983 raises error about missing certificate file6984 when specified key file does not exist6985 raises error about missing key file6986 when only certificate file is specified6987 renders resque.yml correctly6988 when only key file is specified6989 renders resque.yml correctly6990 when configuration valid TLS related options6991 converts cert_file and key_file appropriately6992 #fetch_config6993 raises an exception when the config file contains invalid yaml6994 when redis.yml exists6995 uses config/redis.yml6996 when no config file exsits6997 returns nil6998 when resque.yml exists6999 returns the config from resque.yml7000WorkItems::CreateFromTaskService7001 #execute7002 when work item params are valid7003 is expected to be success7004 creates a work item and creates parent link to the original work item7005 replaces the original issue markdown description with new work item reference7006 behaves like title with extra spaces7007 when title has extra spaces7008 removes extra leading and trailing whitespaces from title7009 when last operation fails7010 rollbacks all operations7011 is expected to be error7012 returns an error message7013 when work item params are invalid7014 returns work item errors7015 behaves like CreateFromTask service with invalid params7016 is expected to be error7017 does not create a work item or links7018Gitlab::Ci::Status::External::Common7019 #label7020 returns description7021 when description is nil7022 uses core status label7023 when description is empty string7024 uses core status label7025 #has_action?7026 is expected not to have action7027 #has_details?7028 when user has access to read commit status7029 is expected to have details7030 when user does not have access to read commit status7031 is expected not to have details7032 #details_path7033 links to the external target URL7034layouts/nav/sidebar/_admin7035 on home page7036 behaves like page has active tab7037 activates Overview tab7038 behaves like has nav sidebar7039 has collapsed nav sidebar on mobile7040 on projects7041 behaves like page has active tab7042 activates Overview tab7043 behaves like page has active sub tab7044 activates Projects sub tab7045 on groups7046 behaves like page has active tab7047 activates Overview tab7048 behaves like page has active sub tab7049 activates Groups sub tab7050 on users7051 behaves like page has active tab7052 activates Overview tab7053 behaves like page has active sub tab7054 activates Users sub tab7055 on topics7056 behaves like page has active tab7057 activates Overview tab7058 behaves like page has active sub tab7059 activates Topics sub tab7060 on runners7061 behaves like page has active tab7062 activates CI/CD tab7063 behaves like page has active sub tab7064 activates Runners sub tab7065 on jobs7066 behaves like page has active tab7067 activates CI/CD tab7068 behaves like page has active sub tab7069 activates Jobs sub tab7070 on messages7071 behaves like page has active tab7072 activates Messages tab7073 on analytics7074 behaves like page has active tab7075 activates Analytics tab7076 on hooks7077 behaves like page has active tab7078 activates Hooks tab7079 on background jobs7080 behaves like page has active tab7081 activates Monitoring tab7082 behaves like page has active sub tab7083 activates Background Jobs sub tab7084 on settings7085 includes General link7086 when GitLab.com7087 does not include Integrations link7088 when not GitLab.com7089 includes Integrations link7090 when GitLab FOSS7091 does not include Templates link7092X509Certificate7093 validation7094 is expected to validate that :subject_key_identifier cannot be empty/falsy7095 is expected to validate that :email cannot be empty/falsy7096 is expected to validate that :serial_number cannot be empty/falsy7097 is expected to validate that :x509_issuer_id cannot be empty/falsy7098 associations7099 is expected to belong to x509_issuer required: true7100 .safe_create!7101 creates a new certificate if it was not found7102 assigns the correct attributes when creating7103 calls mark_commit_signatures_unverified7104 certificate revocation handling7105 starts a revoke worker if certificate is revoked7106 does not starts a revoke worker for good certificates7107 validators7108 accepts correct subject_key_identifier7109 rejects invalid subject_key_identifier7110 accepts correct email address7111 rejects invalid email7112 accepts valid serial_number7113 rejects invalid serial_number7114Gitlab::GithubImport::Importer::IssueEventImporter7115 #execute7116 when it's closed issue event7117 behaves like triggers specific event importer7118 Gitlab::GithubImport::Importer::Events::Closed7119 when it's reopened issue event7120 behaves like triggers specific event importer7121 Gitlab::GithubImport::Importer::Events::Reopened7122 when it's labeled issue event7123 behaves like triggers specific event importer7124 Gitlab::GithubImport::Importer::Events::ChangedLabel7125 when it's unlabeled issue event7126 behaves like triggers specific event importer7127 Gitlab::GithubImport::Importer::Events::ChangedLabel7128 when it's renamed issue event7129 behaves like triggers specific event importer7130 Gitlab::GithubImport::Importer::Events::Renamed7131 when it's milestoned issue event7132 behaves like triggers specific event importer7133 Gitlab::GithubImport::Importer::Events::ChangedMilestone7134 when it's demilestoned issue event7135 behaves like triggers specific event importer7136 Gitlab::GithubImport::Importer::Events::ChangedMilestone7137 when it's cross-referenced issue event7138 behaves like triggers specific event importer7139 Gitlab::GithubImport::Importer::Events::CrossReferenced7140 when it's assigned issue event7141 behaves like triggers specific event importer7142 Gitlab::GithubImport::Importer::Events::ChangedAssignee7143 when it's unassigned issue event7144 behaves like triggers specific event importer7145 Gitlab::GithubImport::Importer::Events::ChangedAssignee7146 when it's review_requested issue event7147 behaves like triggers specific event importer7148 Gitlab::GithubImport::Importer::Events::ChangedReviewer7149 when it's review_request_removed issue event7150 behaves like triggers specific event importer7151 Gitlab::GithubImport::Importer::Events::ChangedReviewer7152 when it's unknown issue event7153 logs warning and skips7154Files::DeleteService7155 #execute7156 when the file's last commit is earlier than the latest commit for this branch7157 returns a hash with the correct error message and a :error status7158 when the file's last commit sha does match the supplied last_commit_sha7159 behaves like successfully deletes the file7160 returns a hash with the :success status7161 deletes the file7162 uses the commit email7163 when the last_commit_sha is not supplied7164 behaves like successfully deletes the file7165 returns a hash with the :success status7166 deletes the file7167 uses the commit email7168Gitlab::SidekiqMiddleware::SkipJobs7169 # order random7170 #call7171 with worker not opted for database health check7172 with all combinations of drop and defer FFs7173 drop_ff: false, run_ff: true, resulting_behavior: "runs the job normally"7174 behaves like runs the job normally7175DEPRECATION WARNING: Invalid Feature Flag drop_sidekiq_jobs_TestWorker stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:49)7176DEPRECATION WARNING: Invalid Feature Flag drop_sidekiq_jobs_TestWorker stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:49)7177DEPRECATION WARNING: Invalid Feature Flag run_sidekiq_jobs_TestWorker stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:49)7178 yields control7179DEPRECATION WARNING: Invalid Feature Flag drop_sidekiq_jobs_TestWorker stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:49)7180DEPRECATION WARNING: Invalid Feature Flag drop_sidekiq_jobs_TestWorker stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:49)7181DEPRECATION WARNING: Invalid Feature Flag run_sidekiq_jobs_TestWorker stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:49)7182 does not increment any metric counter7183DEPRECATION WARNING: Invalid Feature Flag drop_sidekiq_jobs_TestWorker stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:49)7184DEPRECATION WARNING: Invalid Feature Flag drop_sidekiq_jobs_TestWorker stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:49)7185DEPRECATION WARNING: Invalid Feature Flag run_sidekiq_jobs_TestWorker stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:49)7186 does not increment deferred_count7187 drop_ff: true, run_ff: true, resulting_behavior: "drops the job"7188 behaves like drops the job7189DEPRECATION WARNING: Invalid Feature Flag drop_sidekiq_jobs_TestWorker stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:49)7190DEPRECATION WARNING: Invalid Feature Flag drop_sidekiq_jobs_TestWorker stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:49)7191DEPRECATION WARNING: Invalid Feature Flag run_sidekiq_jobs_TestWorker stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:49)7192 does not yield control7193DEPRECATION WARNING: Invalid Feature Flag drop_sidekiq_jobs_TestWorker stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:49)7194DEPRECATION WARNING: Invalid Feature Flag drop_sidekiq_jobs_TestWorker stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:49)7195DEPRECATION WARNING: Invalid Feature Flag run_sidekiq_jobs_TestWorker stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:49)7196 increments counter7197DEPRECATION WARNING: Invalid Feature Flag drop_sidekiq_jobs_TestWorker stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:49)7198DEPRECATION WARNING: Invalid Feature Flag drop_sidekiq_jobs_TestWorker stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:49)7199DEPRECATION WARNING: Invalid Feature Flag run_sidekiq_jobs_TestWorker stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:49)7200 does not increment deferred_count7201DEPRECATION WARNING: Invalid Feature Flag drop_sidekiq_jobs_TestWorker stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:49)7202DEPRECATION WARNING: Invalid Feature Flag drop_sidekiq_jobs_TestWorker stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:49)7203DEPRECATION WARNING: Invalid Feature Flag run_sidekiq_jobs_TestWorker stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:49)7204 has dropped field in job equal to true7205 drop_ff: false, run_ff: false, resulting_behavior: "defers the job"7206 behaves like defers the job7207DEPRECATION WARNING: Invalid Feature Flag drop_sidekiq_jobs_TestWorker stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:49)7208DEPRECATION WARNING: Invalid Feature Flag drop_sidekiq_jobs_TestWorker stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:49)7209DEPRECATION WARNING: Invalid Feature Flag run_sidekiq_jobs_TestWorker stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:49)7210 does not yield control7211DEPRECATION WARNING: Invalid Feature Flag drop_sidekiq_jobs_TestWorker stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:49)7212DEPRECATION WARNING: Invalid Feature Flag drop_sidekiq_jobs_TestWorker stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:49)7213DEPRECATION WARNING: Invalid Feature Flag run_sidekiq_jobs_TestWorker stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:49)7214 delays the job7215DEPRECATION WARNING: Invalid Feature Flag drop_sidekiq_jobs_TestWorker stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:49)7216DEPRECATION WARNING: Invalid Feature Flag drop_sidekiq_jobs_TestWorker stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:49)7217DEPRECATION WARNING: Invalid Feature Flag run_sidekiq_jobs_TestWorker stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:49)7218 increments counter7219DEPRECATION WARNING: Invalid Feature Flag drop_sidekiq_jobs_TestWorker stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:49)7220DEPRECATION WARNING: Invalid Feature Flag drop_sidekiq_jobs_TestWorker stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:49)7221DEPRECATION WARNING: Invalid Feature Flag run_sidekiq_jobs_TestWorker stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:49)7222 has deferred related fields in job payload7223 drop_ff: true, run_ff: false, resulting_behavior: "drops the job"7224 behaves like drops the job7225DEPRECATION WARNING: Invalid Feature Flag drop_sidekiq_jobs_TestWorker stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:49)7226DEPRECATION WARNING: Invalid Feature Flag drop_sidekiq_jobs_TestWorker stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:49)7227DEPRECATION WARNING: Invalid Feature Flag run_sidekiq_jobs_TestWorker stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:49)7228 does not yield control7229DEPRECATION WARNING: Invalid Feature Flag drop_sidekiq_jobs_TestWorker stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:49)7230DEPRECATION WARNING: Invalid Feature Flag drop_sidekiq_jobs_TestWorker stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:49)7231DEPRECATION WARNING: Invalid Feature Flag run_sidekiq_jobs_TestWorker stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:49)7232 increments counter7233DEPRECATION WARNING: Invalid Feature Flag drop_sidekiq_jobs_TestWorker stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:49)7234DEPRECATION WARNING: Invalid Feature Flag drop_sidekiq_jobs_TestWorker stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:49)7235DEPRECATION WARNING: Invalid Feature Flag run_sidekiq_jobs_TestWorker stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:49)7236 does not increment deferred_count7237DEPRECATION WARNING: Invalid Feature Flag drop_sidekiq_jobs_TestWorker stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:49)7238DEPRECATION WARNING: Invalid Feature Flag drop_sidekiq_jobs_TestWorker stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:49)7239DEPRECATION WARNING: Invalid Feature Flag run_sidekiq_jobs_TestWorker stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:49)7240 has dropped field in job equal to true7241 using current_request actor7242 with drop_sidekiq_jobs FF7243 behaves like drops the job7244DEPRECATION WARNING: Invalid Feature Flag drop_sidekiq_jobs_TestWorker stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:49)7245DEPRECATION WARNING: Invalid Feature Flag drop_sidekiq_jobs_TestWorker stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:49)7246 does not yield control7247DEPRECATION WARNING: Invalid Feature Flag drop_sidekiq_jobs_TestWorker stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:49)7248DEPRECATION WARNING: Invalid Feature Flag drop_sidekiq_jobs_TestWorker stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:49)7249 increments counter7250DEPRECATION WARNING: Invalid Feature Flag drop_sidekiq_jobs_TestWorker stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:49)7251DEPRECATION WARNING: Invalid Feature Flag drop_sidekiq_jobs_TestWorker stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:49)7252 does not increment deferred_count7253DEPRECATION WARNING: Invalid Feature Flag drop_sidekiq_jobs_TestWorker stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:49)7254DEPRECATION WARNING: Invalid Feature Flag drop_sidekiq_jobs_TestWorker stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:49)7255 has dropped field in job equal to true7256 for different request7257 behaves like runs the job normally7258DEPRECATION WARNING: Invalid Feature Flag drop_sidekiq_jobs_TestWorker stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:49)7259DEPRECATION WARNING: Invalid Feature Flag drop_sidekiq_jobs_TestWorker stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:49)7260 yields control7261DEPRECATION WARNING: Invalid Feature Flag drop_sidekiq_jobs_TestWorker stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:49)7262DEPRECATION WARNING: Invalid Feature Flag drop_sidekiq_jobs_TestWorker stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:49)7263 does not increment any metric counter7264DEPRECATION WARNING: Invalid Feature Flag drop_sidekiq_jobs_TestWorker stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:49)7265DEPRECATION WARNING: Invalid Feature Flag drop_sidekiq_jobs_TestWorker stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:49)7266 does not increment deferred_count7267 with run_sidekiq_jobs FF7268 behaves like runs the job normally7269DEPRECATION WARNING: Invalid Feature Flag drop_sidekiq_jobs_TestWorker stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:49)7270DEPRECATION WARNING: Invalid Feature Flag run_sidekiq_jobs_TestWorker stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:49)7271 yields control7272DEPRECATION WARNING: Invalid Feature Flag drop_sidekiq_jobs_TestWorker stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:49)7273DEPRECATION WARNING: Invalid Feature Flag run_sidekiq_jobs_TestWorker stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:49)7274 does not increment any metric counter7275DEPRECATION WARNING: Invalid Feature Flag drop_sidekiq_jobs_TestWorker stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:49)7276DEPRECATION WARNING: Invalid Feature Flag run_sidekiq_jobs_TestWorker stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:49)7277 does not increment deferred_count7278 for different request7279 behaves like defers the job7280DEPRECATION WARNING: Invalid Feature Flag drop_sidekiq_jobs_TestWorker stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:49)7281DEPRECATION WARNING: Invalid Feature Flag run_sidekiq_jobs_TestWorker stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:49)7282 does not yield control7283DEPRECATION WARNING: Invalid Feature Flag drop_sidekiq_jobs_TestWorker stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:49)7284DEPRECATION WARNING: Invalid Feature Flag run_sidekiq_jobs_TestWorker stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:49)7285 delays the job7286DEPRECATION WARNING: Invalid Feature Flag drop_sidekiq_jobs_TestWorker stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:49)7287DEPRECATION WARNING: Invalid Feature Flag run_sidekiq_jobs_TestWorker stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:49)7288 increments counter7289DEPRECATION WARNING: Invalid Feature Flag drop_sidekiq_jobs_TestWorker stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:49)7290DEPRECATION WARNING: Invalid Feature Flag run_sidekiq_jobs_TestWorker stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:49)7291 has deferred related fields in job payload7292 with worker opted for database health check7293 without any stop signal from database health check7294DEPRECATION WARNING: Invalid Feature Flag drop_sidekiq_jobs_TestWorker stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:49)7295 runs the job normally7296 with stop signal from database health check7297DEPRECATION WARNING: Invalid Feature Flag drop_sidekiq_jobs_TestWorker stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:49)7298 defers the job by set time7299Gitlab::Usage::Metrics::Instrumentations::DormantUserPeriodSettingMetric7300 # order random7301 deactivate_dormant_users_period_value: 365, expected_value: 3657302 behaves like a correct instrumented metric value7303 has correct value7304 deactivate_dormant_users_period_value: 90, expected_value: 907305 behaves like a correct instrumented metric value7306 has correct value7307Ci::Maskable7308 masked value validations7309 when variable is masked and expanded7310 is expected not to allow :value to be ‹"hello"›7311 is expected not to allow :value to be ‹"hello world"›7312 is expected not to allow :value to be ‹"hello$VARIABLEworld"›7313 is expected not to allow :value to be ‹"hello\\rworld"›7314 is expected to allow :value to be ‹"helloworld"›7315 when method :raw is not defined7316 evaluates masked variables as expanded7317 when variable is masked and raw7318 is expected not to allow :value to be ‹"hello"›7319 is expected not to allow :value to be ‹"hello world"›7320 is expected to allow :value to be ‹"hello\\rworld"›7321 is expected to allow :value to be ‹"hello$VARIABLEworld"›7322 is expected to allow :value to be ‹"helloworld!!!"›7323 is expected to allow :value to be ‹"hell******world"›7324 is expected to allow :value to be ‹"helloworld123"›7325 when variable is not masked7326 is expected to allow :value to be ‹"hello"›7327 is expected to allow :value to be ‹"hello world"›7328 is expected to allow :value to be ‹"hello$VARIABLEworld"›7329 is expected to allow :value to be ‹"hello\\rworld"›7330 is expected to allow :value to be ‹"helloworld"›7331 Regexes7332 with MASK_AND_RAW_REGEX7333 does not match strings shorter than 8 letters7334 does not match strings with spaces7335 does not match strings that span more than one line7336 matches valid strings7337 with REGEX7338 does not match strings shorter than 8 letters7339 does not match strings with spaces7340 does not match strings with shell variables7341 does not match strings with escape characters7342 does not match strings that span more than one line7343 does not match strings using unsupported characters7344 matches valid strings7345 #to_runner_variable7346 exposes the masked attribute7347Gitlab::SidekiqMiddleware::ClientMetrics7348 behaves like metrics middleware with worker attribution7349 when workers are not attributed7350 behaves like a metrics middleware7351 with mocked prometheus7352 #call7353 yields block7354 increments enqueued jobs metric with correct labels when worker is a string of the class7355 increments enqueued jobs metric with correct labels7356 when a worker is wrapped into ActiveJob7357 behaves like a metrics middleware7358 with mocked prometheus7359 #call7360 yields block7361 increments enqueued jobs metric with correct labels when worker is a string of the class7362 increments enqueued jobs metric with correct labels7363 when workers are attributed7364 high urgency7365 behaves like a metrics middleware7366 with mocked prometheus7367 #call7368 yields block7369 increments enqueued jobs metric with correct labels when worker is a string of the class7370 increments enqueued jobs metric with correct labels7371 no urgency7372 behaves like a metrics middleware7373 with mocked prometheus7374 #call7375 yields block7376 increments enqueued jobs metric with correct labels when worker is a string of the class7377 increments enqueued jobs metric with correct labels7378 external dependencies7379 behaves like a metrics middleware7380 with mocked prometheus7381 #call7382 yields block7383 increments enqueued jobs metric with correct labels when worker is a string of the class7384 increments enqueued jobs metric with correct labels7385 cpu boundary7386 behaves like a metrics middleware7387 with mocked prometheus7388 #call7389 yields block7390 increments enqueued jobs metric with correct labels when worker is a string of the class7391 increments enqueued jobs metric with correct labels7392 memory boundary7393 behaves like a metrics middleware7394 with mocked prometheus7395 #call7396 yields block7397 increments enqueued jobs metric with correct labels when worker is a string of the class7398 increments enqueued jobs metric with correct labels7399 feature category7400 behaves like a metrics middleware7401 with mocked prometheus7402 #call7403 yields block7404 increments enqueued jobs metric with correct labels when worker is a string of the class7405 increments enqueued jobs metric with correct labels7406 combined7407 behaves like a metrics middleware7408 with mocked prometheus7409 #call7410 yields block7411 increments enqueued jobs metric with correct labels when worker is a string of the class7412 increments enqueued jobs metric with correct labels7413 when mounted7414 when scheduling jobs for immediate execution7415 increments enqueued jobs metric with scheduling label set to immediate7416 when scheduling jobs for future execution7417 increments enqueued jobs metric with scheduling label set to delayed7418 sets the scheduled_at field7419 when the worker class cannot be found7420 increments enqueued jobs metric with the worker labels set to NilClass7421Security::LicenseComplianceJobsFinder7422 behaves like Security::JobsFinder7423 #new7424 does not get initialized for unsupported job types7425 #execute7426 behaves like JobsFinder core functionality7427 when the pipeline has no jobs7428 is expected to be empty7429 when the pipeline has no Secure jobs7430 is expected to be empty7431 when the pipeline only has jobs without report artifacts7432 is expected to be empty7433 when the pipeline only has jobs with reports unrelated to Secure products7434 is expected to be empty7435 when the pipeline only has jobs with reports with paths similar but not identical to Secure reports7436 is expected to be empty7437 when there is more than one pipeline7438 returns jobs associated with provided pipeline7439 #execute7440 returns only the license_scanning job7441GitlabSettings::Options7442 # order random7443 #key?7444 checks if a string key exists7445 checks if a symbol key exists7446 #merge!7447 merges in place with the existing options7448 when the merge hash replaces existing configs7449 merges in place with the duplicated options replaced7450 .build7451 when argument is a hash7452 creates a new GitlabSettings::Options instance7453 #stringify_keys!7454 behaves like do not mutate7455 when in production env7456 returns the unchanged internal hash7457 when not in production env7458 raises an exception to avoid changing the internal keys7459 #method_missing7460 when method is an option7461 delegates methods to options keys7462 uses methods to change options values7463 when method is not an option7464 when in production env7465 delegates the method to the internal options hash7466 when not in production env7467 delegates the method to the internal options hash7468 when method is not an option and does not exist in hash7469 raises GitlabSettings::MissingSetting7470 #merge7471 returns a new object with the options merged7472 when the merge hash replaces existing configs7473 returns a new object with the duplicated options replaced7474 #[]7475 accesses the configuration key as string7476 accesses the configuration key as symbol7477 #to_hash7478 returns the hash representation of the config7479 #deep_merge!7480 merges in place with the existing options7481 when the merge hash replaces existing configs7482 merges in place with the duplicated options replaced7483 #[]=7484 changes the configuration key as string7485 changes the configuration key as symbol7486 when key does not exist7487 creates a new configuration by string key7488 creates a new configuration by string key7489 #dup7490 returns a deep copy7491 #is_a?7492 returns false for anything different of Hash or GitlabSettings::Options7493 #symbolize_keys!7494 behaves like do not mutate7495 when in production env7496 returns the unchanged internal hash7497 when not in production env7498 raises an exception to avoid changing the internal keys7499 #deep_merge7500 returns a new object with the options merged7501 when the merge hash replaces existing configs7502 returns a new object with the duplicated options replaced7503 #default7504 returns the option value7505Clusters::Providers::Aws7506 is expected to belong to cluster required: false7507 is expected to validate that the length of :key_name is between 1 and 2557508 is expected to validate that the length of :region is between 1 and 2557509 is expected to validate that the length of :instance_type is between 1 and 2557510 is expected to validate that the length of :security_group_id is between 1 and 2557511 is expected to validate that :subnet_ids cannot be empty/falsy7512 state_machine7513 when any => [:created]7514 nullifies API credentials7515 when any => [:creating]7516 calls #assign_operation_id on the provider7517 when any => [:errored]7518 calls #nullify_credentials on the provider7519 sets a status reason7520 when status_reason is nil7521 does not set status_reason7522 #on_creation?7523 status: :scheduled, result: true7524 is expected to eq true7525 status: :creating, result: true7526 is expected to eq true7527 status: :created, result: false7528 is expected to eq false7529 status: :errored, result: false7530 is expected to eq false7531 default values7532 sets default values7533 custom validations7534 :num_nodes7535 contains non-digit characters7536 is expected to be falsey7537 is blank7538 is expected to be falsey7539 is less than 17540 is expected to be falsey7541 is a positive integer7542 is expected to be truthy7543 #nullify_credentials7544 removes access_key_id, secret_access_key and session_token7545 #created_by_user7546 is expected to eq #<User id:1804 @user1084>7547 #has_rbac_enabled?7548 is expected to be truthy7549 #knative_pre_installed?7550 is expected to be falsey7551Gitlab::Template::IssueTemplate7552 .all7553 strips the md suffix7554 combines the globals and rest7555 .find7556 returns nil if the file does not exist7557 returns the issue object of a valid file7558 .by_category7559 return array of templates7560 when repo is bare or empty7561 returns empty array7562 #content7563 loads the full file7564 raises error when file is not found7565 when repo is empty7566 raises file not found7567NamespacesHelper7568 #cascading_namespace_settings_popover_data7569 when locked by an application setting7570 returns expected hash7571 when locked by an ancestor namespace7572 returns expected hash7573 #cascading_namespace_setting_locked?7574 when `group` argument is `nil`7575 returns `false`7576 when `*_locked?` method does not exist7577 returns `false`7578 when `*_locked?` method does exist7579 calls corresponding `*_locked?` method7580BitbucketServer::Representation::PullRequest7581 #author7582 is expected to eq "root"7583 #author_email7584 is expected to eq "joe.montana@49ers.com"7585 #author_username7586 returns username7587 when username is absent7588 returns slug7589 when slug and username are absent7590 returns displayName7591 #description7592 is expected to eq "Test"7593 #reviewers7594 is expected to eq 27595 #iid7596 is expected to eq 77597 #state7598 is expected to eq "merged"7599 declined pull requests7600 returns closed7601 open pull requests7602 returns open7603 #merged?7604 is expected to be truthy7605 #closed?7606 is expected to be falsey7607 for declined pull requests7608 is expected to be truthy7609 #created_at7610 is expected to eq 15306006357611 #updated_at7612 is expected to eq 15306006487613 #title7614 is expected to eq "Added a new line"7615 #source_branch_name7616 is expected to eq "refs/heads/root/CODE_OF_CONDUCTmd-1530600625006"7617 #source_branch_sha7618 is expected to eq "074e2b4dddc5b99df1bf9d4a3f66cfc15481fdc8"7619 #target_branch_name7620 is expected to eq "refs/heads/master"7621 #target_branch_sha7622 is expected to eq "839fa9a2d434eb697815b8fcafaecc51accfdbbc"7623 #to_hash7624 is expected to match (a hash including {:author_email => "joe.montana@49ers.com", :author_username => "username", :author => "root", :description => "Test", :reviewers => (contain exactly hash_including("user" => "hash_including(\"emailAddress\" => \"jane@doe.com\", \"slug\" => \"jane_doe\")") and hash_including("user" => "hash_including(\"emailAddress\" => \"john@smith.com\", \"slug\" => \"john_smith\")")), :source_branch_name => "refs/heads/root/CODE_OF_CONDUCTmd-1530600625006", :source_branch_sha => "074e2b4dddc5b99df1bf9d4a3f66cfc15481fdc8", :target_branch_name => "refs/heads/master", :target_branch_sha => "839fa9a2d434eb697815b8fcafaecc51accfdbbc", :title => "Added a new line"})7625Sidebars::Projects::Menus::AnalyticsMenu7626 # order random7627 #link7628 returns link to the value stream page7629 when Value Stream is not visible7630 returns link to the the first visible menu item7631 Menu items7632 CI/CD7633 is expected not to be nil7634 when the project repository is empty7635 is expected to be nil7636 when builds access level is DISABLED7637 is expected to be nil7638 when the user does not have access7639 is expected to be nil7640 Repository7641 is expected not to be nil7642 when the project repository is empty7643 is expected to be nil7644 when a user does not have access to repository graphs7645 is expected to be nil7646 when the user does not have access7647 is expected to be nil7648 Value Stream7649 is expected not to be nil7650 when the user does not have access7651 is expected to be nil7652 when issues are disabled7653 is expected not to be nil7654 when merge requests are disabled7655 is expected not to be nil7656 when the issues and merge requests are disabled7657 is expected to be nil7658 #render?7659 whe user cannot read analytics7660 returns false7661 whe user can read analytics7662 returns true7663 when menu does not have any menu items7664 returns false7665 when menu has menu items7666 returns true7667Gitlab::Conflict::FileCollection7668 #files7669 returns an array of Conflict::Files7670 #cache7671 specifies a custom namespace with the merge request commit ids7672 #can_be_resolved_in_ui?7673 returns true if conflicts for this collection can be resolved in the UI7674 returns false if conflicts for this collection can't be resolved in the UI7675 caches the result7676 #default_commit_message7677 matches the format of the git CLI commit message7678Lfs::UnlockFileService7679 #execute7680 when not authorized7681 doesn't succeed7682 when authorized7683 when lock does not exists7684 doesn't succeed7685 when unlocked by the author7686 succeeds7687 when unlocked by a different user7688 doesn't succeed7689 when forced7690 by a regular user7691 doesn't succeed7692 by a maintainer user7693 succeeds7694Sbom::PackageUrl::Encoder7695 # order random7696 #encode7697 valid maven purl7698 is expected to eq "pkg:maven/org.apache.commons/io@1.3.4"7699 basic valid maven purl without version7700 is expected to eq "pkg:maven/org.apache.commons/io"7701 valid go purl without version and with subpath7702 is expected to eq "pkg:golang/google.golang.org/genproto#googleapis/api/annotations"7703 valid go purl with version and subpath7704 is expected to eq "pkg:golang/google.golang.org/genproto@abcdedf#googleapis/api/annotations"7705 bitbucket namespace and name should be lowercased7706 is expected to eq "pkg:bitbucket/birkenfeld/pygments-main@244fd47e07d1014f0aed9c"7707 github namespace and name should be lowercased7708 is expected to eq "pkg:github/package-url/purl-spec@244fd47e07d1004f0aed9c"7709 debian can use qualifiers7710 is expected to eq "pkg:deb/debian/curl@7.50.3-1?arch=i386&distro=jessie"7711 docker uses qualifiers and hash image id as versions7712 is expected to eq "pkg:docker/customer/dockerimage@sha256%3A244fd47e07d1004f0aed9c?repository_url=gcr.io"7713 Java gem can use a qualifier7714 is expected to eq "pkg:gem/jruby-launcher@1.1.2?platform=java"7715 maven often uses qualifiers7716 is expected to eq "pkg:maven/org.apache.xmlgraphics/batik-anim@1.9.1?classifier=sources&repository_url=repo.spring.io%2Frelease"7717 maven pom reference7718 is expected to eq "pkg:maven/org.apache.xmlgraphics/batik-anim@1.9.1?extension=pom&repository_url=repo.spring.io%2Frelease"7719 maven can come with a type qualifier7720 is expected to eq "pkg:maven/net.sf.jacob-project/jacob@1.14.3?classifier=x86&type=dll"7721 npm can be scoped7722 is expected to eq "pkg:npm/%40angular/animation@12.3.1"7723 nuget names are case sensitive7724 is expected to eq "pkg:nuget/EnterpriseLibrary.Common@6.0.1304"7725 pypi names have special rules and not case sensitive7726 is expected to eq "pkg:pypi/django-package@1.11.1.dev1"7727 rpm often use qualifiers7728 is expected to eq "pkg:rpm/fedora/curl@7.50.3-1.fc25?arch=i386&distro=fedora-25"7729 slash / after scheme is not significant7730 is expected to eq "pkg:maven/org.apache.commons/io"7731 double slash // after scheme is not significant7732 is expected to eq "pkg:maven/org.apache.commons/io"7733 slash /// after type is not significant7734 is expected to eq "pkg:maven/org.apache.commons/io"7735 valid maven purl with case sensitive namespace and name7736 is expected to eq "pkg:maven/HTTPClient/HTTPClient@0.3-3"7737 valid maven purl containing a space in the version and qualifier7738 is expected to eq "pkg:maven/mygroup/myartifact@1.0.0+Final?mykey=my+value"7739 valid conan purl7740 is expected to eq "pkg:conan/cctz@2.3"7741 valid conan purl with namespace and qualifier channel7742 is expected to eq "pkg:conan/bincrafters/cctz@2.3?channel=stable"7743 valid conda purl with qualifiers7744 is expected to eq "pkg:conda/absl-py@0.4.1?build=py36h06a4308_0&channel=main&subdir=linux-64&type=tar.bz2"7745 valid cran purl7746 is expected to eq "pkg:cran/A3@0.9.1"7747 valid swift purl7748 is expected to eq "pkg:swift/github.com/Alamofire/Alamofire@5.4.3"7749 valid hackage purl7750 is expected to eq "pkg:hackage/AC-HalfInteger@1.2.1"7751 when purl requires normalization7752 outputs normalized form7753Markup::RenderingService7754 # order random7755 #execute7756 when text is missing7757 returns an empty string7758 when file_name is missing7759 returns html (rendered by Banzai)7760 when postprocess_context is missing7761 returns html (rendered by Banzai)7762 when rendered context is present7763 returns an empty string7764 when file is a markdown file7765 returns html (rendered by Banzai)7766 when file is asciidoc file7767 returns html (rendered by Gitlab::Asciidoc)7768 when file is a regular text file7769 returns html (rendered by ActionView::TagHelper)7770 when file has an unknown type7771 returns html (rendered by Gitlab::OtherMarkup)7772 with reStructuredText7773 returns rendered html7774 when input has an invalid syntax7775 uses a simple formatter for html7776PipelineProcessWorker7777 has the `until_executed` deduplicate strategy7778 has the option to reschedule once if deduplicated and a TTL of 1 minute7779 is labeled as idempotent7780 performs multiple times sequentially without raising an exception7781 processes the pipeline7782 #perform7783 when pipeline exists7784 processes pipeline7785 when pipeline does not exist7786 does not raise exception7787Gitlab::Database::Count::TablesampleCountStrategy7788 #count7789 for tables with an estimated small size7790 performs an exact count7791 for tables with an estimated large size7792 performs a tablesample count7793 insufficient permissions7794 returns an empty hash7795Gitlab::GitalyClient::ObjectPoolService7796 #create7797 exists on disk7798 when the pool already exists7799 returns an error7800 #delete7801 removes the repository from disk7802 when called twice7803 doesn't raise an error7804 #fetch7805 without changes7806 fetches changes7807 with new reference in source repository7808 fetches changes7809Projects::GroupLinks::CreateService#execute7810 when user has proper membership to share a group7811 updates authorization7812 behaves like shareable7813 adds group to project7814 with specialized project_authorization workers7815 schedules authorization update for users with access to group7816 when sharing outside the hierarchy is disabled7817 behaves like not shareable7818 does not share and returns an error7819 when group is inside hierarchy7820 behaves like shareable7821 adds group to project7822 when user does not have permissions for the group7823 behaves like not shareable7824 does not share and returns an error7825 when group is blank7826 behaves like not shareable7827 does not share and returns an error7828SystemCheck::SimpleExecutor7829 #component7830 returns stored component name7831 #checks7832 returns a set of classes7833 #<<7834 appends a new check to the Set7835 inserts unique itens only7836 errors out when passing multiple items7837 #execute7838 runs included checks7839 #run_check7840 prints check name7841 when check pass7842 prints yes7843 when check fails7844 prints no7845 displays error message from #show_error7846 when check implements #repair!7847 executes #repair!7848 when repair succeeds7849 does not execute #show_error7850 when repair fails7851 does not execute #show_error7852 when check implements skip?7853 executes #skip? method7854 displays .skip_reason7855 displays #skip_reason7856 does not execute #check when #skip? is true7857 when implements a #multi_check7858 executes #multi_check method7859 does not execute #check method7860 when check implements #skip?7861 executes #skip? method7862 when there is an exception7863 rescues the exception7864DiscussionEntity7865 exposes correct attributes7866 does not include base discussion in the notes7867 resolved_by matches note_user_entity schema7868 exposes the url for custom award emoji7869 when is LegacyDiffDiscussion7870 exposes correct attributes7871 when diff file is present7872 exposes diff file attributes7873ResourceEvents::ChangeLabelsService7874 #execute7875 broadcasts resource note change7876 when adding a label7877 creates new label event7878 behaves like creating timeline events7879 when resource is not an incident7880 does not call create timeline events service7881 when resource is an incident7882 calls create timeline events service with correct attributes7883 when removing a label7884 creates new label event7885 behaves like creating timeline events7886 when resource is not an incident7887 does not call create timeline events service7888 when resource is an incident7889 calls create timeline events service with correct attributes7890 when both adding and removing labels7891 creates all label events in a single query7892 behaves like creating timeline events7893 when resource is not an incident7894 does not call create timeline events service7895 when resource is an incident7896 calls create timeline events service with correct attributes7897 when resource is a work item7898 triggers note created subscription7899 when resource is an MR7900 does not trigger note created subscription7901 usage data7902 when resource is an issue7903 tracks changed labels7904 behaves like internal event tracking7905 logs to Snowplow7906 when resource is a merge request7907 does not track changed labels7908 does not emit snowplow event7909Ci::PipelineVariable7910 is expected to validate that :key cannot be empty/falsy7911 behaves like CI variable7912 is expected to includes the Ci::HasVariable module7913 strips whitespaces when assigning key7914 can convert to runner variable7915 variable type7916 defines variable types7917 defaults variable type to env_var7918 supports variable type file7919 #hook_attrs7920 is expected to be a kind of Hash7921 is expected to eq {:key=>"foo", :value=>"bar"}7922 partitioning7923 with pipeline7924 copies the partition_id from pipeline7925 without pipeline7926 is expected to validate that :partition_id cannot be empty/falsy7927 does not change the partition_id value7928Gitlab::RackAttack7929 .configure7930 extends the request class7931 configures the throttle response7932 configures the safelist7933 configures throttles if no dry-run was configured7934 configures tracks if dry-run was configured for all throttles7935 configures tracks and throttles with a selected set of dry-runs7936 enables dry-runs for `throttle_unauthenticated_api` and `throttle_unauthenticated_web` when selecting `throttle_unauthenticated`7937 user allowlist7938 is empty7939 reflects GITLAB_THROTTLE_USER_ALLOWLIST7940 .throttled_response_headers7941 matched: "throttle_unauthenticated", match_data: {:discriminator=>"127.0.0.1", :count=>3700, :period=>1 hour, :limit=>3600, :epoch_time=>1609842570}, headers: {"RateLimit-Name"=>"throttle_unauthenticated", "RateLimit-Limit"=>"60", "RateLimit-Observed"=>"3700", "RateLimit-Remaining"=>"0", "RateLimit-Reset"=>"1609844400", "RateLimit-ResetTime"=>"Tue, 05 Jan 2021 11:00:00 GMT", "Retry-After"=>"1830"}7942 generates accurate throttled headers7943 matched: "throttle_unauthenticated", match_data: {:discriminator=>"127.0.0.1", :count=>3700, :period=>1 hour, :limit=>3600, :epoch_time=>1609844399}, headers: {"RateLimit-Name"=>"throttle_unauthenticated", "RateLimit-Limit"=>"60", "RateLimit-Observed"=>"3700", "RateLimit-Remaining"=>"0", "RateLimit-Reset"=>"1609844400", "RateLimit-ResetTime"=>"Tue, 05 Jan 2021 11:00:00 GMT", "Retry-After"=>"1"}7944 generates accurate throttled headers7945 matched: "throttle_unauthenticated", match_data: {:discriminator=>"127.0.0.1", :count=>3700, :period=>1 hour, :limit=>3600, :epoch_time=>1609840800}, headers: {"RateLimit-Name"=>"throttle_unauthenticated", "RateLimit-Limit"=>"60", "RateLimit-Observed"=>"3700", "RateLimit-Remaining"=>"0", "RateLimit-Reset"=>"1609844400", "RateLimit-ResetTime"=>"Tue, 05 Jan 2021 11:00:00 GMT", "Retry-After"=>"3600"}7946 generates accurate throttled headers7947 matched: "throttle_unauthenticated", match_data: {:discriminator=>"127.0.0.1", :count=>3700, :period=>1 hour, :limit=>3600, :epoch_time=>1609889400}, headers: {"RateLimit-Name"=>"throttle_unauthenticated", "RateLimit-Limit"=>"60", "RateLimit-Observed"=>"3700", "RateLimit-Remaining"=>"0", "RateLimit-Reset"=>"1609891200", "RateLimit-ResetTime"=>"Wed, 06 Jan 2021 00:00:00 GMT", "Retry-After"=>"1800"}7948 generates accurate throttled headers7949 matched: "throttle_unauthenticated", match_data: {:discriminator=>"127.0.0.1", :count=>3700, :period=>1 hour, :limit=>3400, :epoch_time=>1609842600}, headers: {"RateLimit-Name"=>"throttle_unauthenticated", "RateLimit-Limit"=>"57", "RateLimit-Observed"=>"3700", "RateLimit-Remaining"=>"0", "RateLimit-Reset"=>"1609844400", "RateLimit-ResetTime"=>"Tue, 05 Jan 2021 11:00:00 GMT", "Retry-After"=>"1800"}7950 generates accurate throttled headers7951 matched: "throttle_unauthenticated", match_data: {:discriminator=>"127.0.0.1", :count=>3700, :period=>1 hour, :limit=>3700, :epoch_time=>1609842600}, headers: {"RateLimit-Name"=>"throttle_unauthenticated", "RateLimit-Limit"=>"62", "RateLimit-Observed"=>"3700", "RateLimit-Remaining"=>"0", "RateLimit-Reset"=>"1609844400", "RateLimit-ResetTime"=>"Tue, 05 Jan 2021 11:00:00 GMT", "Retry-After"=>"1800"}7952 generates accurate throttled headers7953 matched: "throttle_unauthenticated", match_data: {:discriminator=>"127.0.0.1", :count=>3700, :period=>1 hour, :limit=>59, :epoch_time=>1609842600}, headers: {"RateLimit-Name"=>"throttle_unauthenticated", "RateLimit-Limit"=>"1", "RateLimit-Observed"=>"3700", "RateLimit-Remaining"=>"0", "RateLimit-Reset"=>"1609844400", "RateLimit-ResetTime"=>"Tue, 05 Jan 2021 11:00:00 GMT", "Retry-After"=>"1800"}7954 generates accurate throttled headers7955 matched: "throttle_unauthenticated", match_data: {:discriminator=>"127.0.0.1", :count=>3700, :period=>1 hour, :limit=>61, :epoch_time=>1609842600}, headers: {"RateLimit-Name"=>"throttle_unauthenticated", "RateLimit-Limit"=>"2", "RateLimit-Observed"=>"3700", "RateLimit-Remaining"=>"0", "RateLimit-Reset"=>"1609844400", "RateLimit-ResetTime"=>"Tue, 05 Jan 2021 11:00:00 GMT", "Retry-After"=>"1800"}7956 generates accurate throttled headers7957 matched: "throttle_unauthenticated", match_data: {:discriminator=>"127.0.0.1", :count=>3700, :period=>15 seconds, :limit=>10, :epoch_time=>1609842600}, headers: {"RateLimit-Name"=>"throttle_unauthenticated", "RateLimit-Limit"=>"40", "RateLimit-Observed"=>"3700", "RateLimit-Remaining"=>"0", "RateLimit-Reset"=>"1609842615", "RateLimit-ResetTime"=>"Tue, 05 Jan 2021 10:30:15 GMT", "Retry-After"=>"15"}7958 generates accurate throttled headers7959 matched: "throttle_unauthenticated", match_data: {:discriminator=>"127.0.0.1", :count=>3700, :period=>27 seconds, :limit=>10, :epoch_time=>1609842600}, headers: {"RateLimit-Name"=>"throttle_unauthenticated", "RateLimit-Limit"=>"23", "RateLimit-Observed"=>"3700", "RateLimit-Remaining"=>"0", "RateLimit-Reset"=>"1609842627", "RateLimit-ResetTime"=>"Tue, 05 Jan 2021 10:30:27 GMT", "Retry-After"=>"27"}7960 generates accurate throttled headers7961BackgroundMigrationWorker7962 behaves like it runs background migration jobs7963 defining the job attributes7964 defines the data_consistency as always7965 defines the retry count in sidekiq_options7966 defines the feature_category as database7967 defines the urgency as throttled7968 defines the loggable_arguments7969 .tracking_database7970 does not raise an error7971 overrides the method to return the tracking database7972 .minimum_interval7973 returns 2 minutes7974 #perform7975 when execute_background_migrations feature flag is disabled7976 does not perform the job, reschedules it in the future, and logs a message7977 when disallow_database_ddl_feature_flags feature flag is disabled7978 does not perform the job, reschedules it in the future, and logs a message7979 when execute_background_migrations feature flag is enabled7980 performs jobs using the coordinator for the worker7981 when lease can be obtained7982 sets up the shared connection before checking replication7983 performs a background migration7984 can run scheduled job and retried job concurrently7985 sets the class that will be executed as the caller_id7986 when lease_attempts is 17987 performs a background migration7988 when lease not obtained (migration of same class was performed recently)7989 reschedules the migration and decrements the lease_attempts7990 when lease_attempts is 17991 reschedules the migration and decrements the lease_attempts7992 when lease_attempts is 07993 gives up performing the migration7994 when database is not healthy7995 reschedules a migration if the database is not healthy7996 increments the unhealthy counter7997 when lease_attempts is 07998 gives up performing the migration7999BranchesHelper8000 #access_levels_data8001 when access_levels is nil8002 is expected to be empty8003 when access levels are provided8004 returns the correct array8005 when an access level tied to a deploy key is provided8006 returns the correct array8007 #merge_request_status8008 when merge request is missing8009 is expected to be nil8010 when merge request is closed8011 is expected to be nil8012 when merge request is open8013 is expected to eq {:icon=>"merge-request-open", :title=>"Open - Test MR", :variant=>:success}8014 when merge request is locked8015 is expected to eq {:icon=>"merge-request-open", :title=>"Open - Test MR", :variant=>:success}8016 when merge request is draft8017 is expected to eq {:icon=>"merge-request-open", :title=>"Open - Draft: Test MR", :variant=>:warning}8018 when merge request is merged8019 is expected to eq {:icon=>"merge", :title=>"Merged - Test MR", :variant=>:info}8020 when merge request status is unsupported8021 is expected to be nil8022Gitlab::RepositoryHashCache8023 #cache_key8024 includes the namespace8025 with a given namespace8026 includes the full namespace8027 #delete8028 key exists8029 is expected to eq 18030 deletes the given key from the cache8031 key doesn't exist8032 is expected to eq 08033 multiple keys8034 deletes multiple keys8035 returns deleted key count8036 #key?8037 key exists8038 is expected to equal true8039 key doesn't exist8040 is expected to equal false8041 #read_members8042 all data is cached8043 is expected to eq {"missing"=>"false", "test"=>"value"}8044 partial data is cached8045 is expected to eq {"missing"=>nil, "test"=>"value"}8046 no data is cached8047 is expected to eq {"missing"=>nil, "test"=>nil}8048 empty keys are passed for some reason8049 raises an error8050 #write8051 is expected to equal true8052 actually writes stuff to Redis8053 #fetch_and_add_missing8054 records metrics8055 fully cached8056 returns a hash8057 doesn't write to the cache8058 partially cached8059 returns a hash8060 writes to the cache8061 uncached8062 returns a hash8063 writes to the cache8064ColorValidator8065 fails fast for long invalid string8066 color: "#000abc", is_valid: true8067 only accepts valid colors8068 color: "#aaa", is_valid: true8069 only accepts valid colors8070 color: "#BBB", is_valid: true8071 only accepts valid colors8072 color: "#cCc", is_valid: true8073 only accepts valid colors8074 color: "#ffff", is_valid: false8075 only accepts valid colors8076 color: "#000111222", is_valid: false8077 only accepts valid colors8078 color: "invalid", is_valid: false8079 only accepts valid colors8080 color: "red", is_valid: false8081 only accepts valid colors8082 color: "000", is_valid: false8083 only accepts valid colors8084 color: nil, is_valid: true8085 only accepts valid colors8086 color: "", is_valid: false8087 only accepts valid colors8088 color: Fri, 20 Oct 2023 08:28:48.868122301 UTC +00:00, is_valid: false8089 only accepts valid colors8090 color: #<Gitlab::Color:0x00007a353053e320 @value="#FF0000">, is_valid: true8091 only accepts valid colors8092 when color must be present8093 rejects nil8094Routing::PseudonymizationHelper8095 when url has params to mask8096 with controller for MR8097 behaves like masked url8098 generates masked page url8099 with controller for issue8100 behaves like masked url8101 generates masked page url8102 with controller for groups with subgroups and project8103 behaves like masked url8104 generates masked page url8105 with controller for groups and subgroups8106 behaves like masked url8107 generates masked page url8108 with controller for blob with file path8109 behaves like masked url8110 generates masked page url8111 when assignee_username is present8112 behaves like masked url8113 generates masked page url8114 when author_username is present8115 behaves like masked url8116 generates masked page url8117 when some query params are not required to be masked8118 behaves like masked url8119 generates masked page url8120 when query string has keys with the same names as path params8121 behaves like masked url8122 generates masked page url8123 when url has no params to mask8124 returns unchanged url8125 when it raises exception8126 calls error tracking8127 sends error to sentry and returns nil8128 when feature flag is disabled8129 returns nil8130Packages::TerraformModule::CreatePackageService8131 #execute8132 valid package8133 behaves like creating a package8134 creates a package8135 package already exists elsewhere8136 is expected to eq 4038137 is expected to equal "Access Denied"8138 marked as pending_destruction8139 behaves like creating a package8140 creates a package8141 version already exists8142 is expected to eq 4038143 is expected to equal "Package version already exists."8144 marked as pending_destruction8145 behaves like creating a package8146 creates a package8147 with empty version8148 is expected to eq 4008149 is expected to eq "Version is empty."8150Pajamas::BannerComponent8151 basic usage8152 renders its content8153 renders its title8154 renders a close button8155 button_text and button_link8156 define the primary action8157 banner_options8158 are on the banner8159 with custom classes8160 don't conflict with internal banner_classes8161 close_options8162 are on the close button8163 embedded8164 by default (false)8165 keeps the banner's borders8166 when set to true8167 removes the banner's borders8168 variant8169 by default (promotion)8170 does not apply introduction class8171 when set to introduction8172 applies the introduction class to the banner8173 applies the confirm class to the close button8174 when set to unknown variant8175 ignores the unknown variant8176 illustration8177 has none by default8178 with svg_path8179 renders an image as illustration8180 with illustration slot8181 renders the slot content as illustration8182 and conflicting svg_path8183 uses the slot content8184 with primary_action slot8185 renders the slot content as the primary action8186 and conflicting button_text and button_link8187 uses the slot content8188Gitlab::Chat::Responder::Slack8189 #send_response8190 sends a response back to Slack8191 #success8192 returns the output for a successful build8193 limits the output to a fixed size8194 does not send a response if the output is empty8195 #failure8196 returns the output for a failed build8197 #scheduled_output8198 returns the output for a scheduled build8199Gitlab::SlashCommands::Presenters::IssueMove8200 is expected to be a kind of Hash8201 shows the new issue8202 mentions the old issue and the new issue in the pretext8203Groups::DeployTokens::CreateService8204 behaves like a deploy token creation service8205 #execute8206 when the deploy token is valid8207 creates a new DeployToken8208 creates a new ProjectDeployToken8209 returns a DeployToken8210 sets the creator_id as the id of the current_user8211 when expires at date is not passed8212 sets Forever.date8213 when username is empty string8214 converts it to nil8215 when username is provided8216 keeps the provided username8217 when the deploy token is invalid8218 does not create a new DeployToken8219 does not create a new ProjectDeployToken8220SessionsHelper8221 #recently_confirmed_com?8222 when on .com8223 when flash notice is empty it is false8224 when flash notice is anything it is false8225 when flash notice is devise confirmed message it is true8226 when not on .com8227 when flash notice is devise confirmed message it is false8228 #unconfirmed_email?8229 returns true when the flash alert contains a devise failure unconfirmed message8230 returns false when the flash alert does not contain a devise failure unconfirmed message8231 #unconfirmed_verification_email?8232 reset_first_offer?: true, unconfirmed_email_present?: true, token_valid?: true, result: true8233 is expected to eq true8234 reset_first_offer?: false, unconfirmed_email_present?: true, token_valid?: true, result: false8235 is expected to eq false8236 reset_first_offer?: true, unconfirmed_email_present?: false, token_valid?: true, result: false8237 is expected to eq false8238 reset_first_offer?: true, unconfirmed_email_present?: true, token_valid?: false, result: false8239 is expected to eq false8240 #verification_email8241 when there is an unconfirmed verification email8242 is expected to eq "unconfirmed@email"8243 when there is no unconfirmed verification email8244 is expected to eq "user2113@example.org"8245 #verification_data8246 returns the expected data8247 #obfuscated_email8248 delegates to Gitlab::Utils::Email.obfuscated_email8249 #remember_me_enabled?8250 when application setting is enabled8251 is expected to equal true8252 when application setting is disabled8253 is expected to equal false8254MergeRequest::MetricsFinder8255 when target project is missing8256 is expected to be empty8257 when the user is not part of the project8258 is expected to be empty8259 when user is part of the project8260 returns merge request records8261 excludes not merged records8262 when only merged_before is given8263 is expected to eq [#<MergeRequest::Metrics merge_request_id: 231, latest_build_started_at: nil, latest_build_finished_a..., added_lines: nil, removed_lines: nil, target_project_id: 843, id: 503, first_contribution: false>]8264 when only merged_after is given8265 is expected to eq [#<MergeRequest::Metrics merge_request_id: 231, latest_build_started_at: nil, latest_build_finished_a..., added_lines: nil, removed_lines: nil, target_project_id: 843, id: 503, first_contribution: false>]8266 when no records matching the date range8267 is expected to be empty8268Environments::AutoStopWorker8269 stops the environment8270 executes the stop action8271 when user does not have a permission to play the stop action8272 raises an error8273 when the environment has already been stopped8274 does not execute the stop action8275 when there are no deployments and associted stop actions8276 stops the environment8277 when there are no corresponding environment record8278 ignores the invalid record8279Gitlab::Database::Migrations::Version8280 # order random8281 initialize8282 when the type is :post or :regular8283 does not raise an error8284 when the type is anything else8285 does not raise an error8286 type8287 when the migration is regular8288 correctly identifies the migration type8289 when the migration is post_deployment8290 correctly identifies the migration type8291 eql?8292 version1: #<Gitlab::Database::Migrations::Version:0x00007a34fefd8290 @timestamp=4, @milestone=#<Gitlab::VersionInfo:0x00007a34fefd8358 @major=10, @minor=3, @patch=0, @suffix_s="">, @type_value=0>, version2: #<Gitlab::Database::Migrations::Version:0x00007a34fefcbe78 @timestamp=4, @milestone=#<Gitlab::VersionInfo:0x00007a34fefcbec8 @major=10, @minor=3, @patch=0, @suffix_s="">, @type_value=0>, expected_equality: true8293 correctly evaluates deep equality8294 correctly evaluates deep equality using ==8295 version1: #<Gitlab::Database::Migrations::Version:0x00007a34fefcbb58 @timestamp=4, @milestone=#<Gitlab::VersionInfo:0x00007a34fefcbba8 @major=10, @minor=3, @patch=0, @suffix_s="">, @type_value=0>, version2: #<Gitlab::Database::Migrations::Version:0x00007a34fefcb8b0 @timestamp=4, @milestone=#<Gitlab::VersionInfo:0x00007a34fefcb8d8 @major=10, @minor=4, @patch=0, @suffix_s="">, @type_value=0>, expected_equality: false8296 correctly evaluates deep equality8297 correctly evaluates deep equality using ==8298 version1: #<Gitlab::Database::Migrations::Version:0x00007a34fefcb720 @timestamp=4, @milestone=#<Gitlab::VersionInfo:0x00007a34fefcb748 @major=10, @minor=3, @patch=0, @suffix_s="">, @type_value=0>, version2: #<Gitlab::Database::Migrations::Version:0x00007a34fefcb590 @timestamp=4, @milestone=#<Gitlab::VersionInfo:0x00007a34fefcb5e0 @major=10, @minor=3, @patch=0, @suffix_s="">, @type_value=1>, expected_equality: false8299 correctly evaluates deep equality8300 correctly evaluates deep equality using ==8301 version1: #<Gitlab::Database::Migrations::Version:0x00007a34fefcb450 @timestamp=4, @milestone=#<Gitlab::VersionInfo:0x00007a34fefcb478 @major=10, @minor=3, @patch=0, @suffix_s="">, @type_value=0>, version2: #<Gitlab::Database::Migrations::Version:0x00007a34fefcb1f8 @timestamp=5, @milestone=#<Gitlab::VersionInfo:0x00007a34fefcb220 @major=10, @minor=3, @patch=0, @suffix_s="">, @type_value=0>, expected_equality: false8302 correctly evaluates deep equality8303 correctly evaluates deep equality using ==8304 to_s8305 returns the given timestamp value as a string8306 hash8307 deterministically returns a hash of the timestamp, milestone, and type value8308 #<=>8309 sorts by existence of milestone, then by milestone, then by type, then by timestamp when sorted by version8310Gitlab::BackgroundTask8311 when stopped8312 is not running8313 #start8314 runs the given task on a background thread8315 returns self8316 when installing exit handler8317 stops a running background task8318 when task responds to start8319 calls start8320 when start returns true8321 runs the task8322 when start returns false8323 does not run the task8324 when synchronous is set to true8325 calls join on the thread8326 #stop8327 is a no-op8328 when running8329 #start8330 raises an error8331 #stop8332 stops running8333 when task responds to stop8334 calls stop8335 when task stop raises an error8336 stops gracefully8337 reports the error8338 when task run raises exception8339#<Thread:0x00007a35198ae828@test_background_task /builds/gitlab-org/gitlab/lib/gitlab/background_task.rb:58 run> terminated with exception (report_on_exception is true):8340/builds/gitlab-org/gitlab/spec/lib/gitlab/background_task_spec.rb:189:in `block (5 levels) in <top (required)>': task error (RuntimeError)8341 from /builds/gitlab-org/gitlab/lib/gitlab/background_task.rb:60:in `block (2 levels) in start'8342 stops gracefully8343#<Thread:0x00007a351ae19f00@test_background_task /builds/gitlab-org/gitlab/lib/gitlab/background_task.rb:58 run> terminated with exception (report_on_exception is true):8344/builds/gitlab-org/gitlab/spec/lib/gitlab/background_task_spec.rb:189:in `block (5 levels) in <top (required)>': task error (RuntimeError)8345 from /builds/gitlab-org/gitlab/lib/gitlab/background_task.rb:60:in `block (2 levels) in start'8346 reports the error8347Types::WorkItems::WidgetInterface8348 exposes the expected fields8349 .resolve_type8350 raises an error for an unknown type8351 widget_class: WorkItems::Widgets::Description, widget_type_name: Types::WorkItems::Widgets::DescriptionType8352 knows the correct type for objects8353 widget_class: WorkItems::Widgets::Hierarchy, widget_type_name: Types::WorkItems::Widgets::HierarchyType8354 knows the correct type for objects8355 widget_class: WorkItems::Widgets::Assignees, widget_type_name: Types::WorkItems::Widgets::AssigneesType8356 knows the correct type for objects8357 widget_class: WorkItems::Widgets::Labels, widget_type_name: Types::WorkItems::Widgets::LabelsType8358 knows the correct type for objects8359 widget_class: WorkItems::Widgets::Notes, widget_type_name: Types::WorkItems::Widgets::NotesType8360 knows the correct type for objects8361 widget_class: WorkItems::Widgets::Notifications, widget_type_name: Types::WorkItems::Widgets::NotificationsType8362 knows the correct type for objects8363 widget_class: WorkItems::Widgets::CurrentUserTodos, widget_type_name: Types::WorkItems::Widgets::CurrentUserTodosType8364 knows the correct type for objects8365 widget_class: WorkItems::Widgets::AwardEmoji, widget_type_name: Types::WorkItems::Widgets::AwardEmojiType8366 knows the correct type for objects8367 widget_class: WorkItems::Widgets::LinkedItems, widget_type_name: Types::WorkItems::Widgets::LinkedItemsType8368 knows the correct type for objects8369Sidebars::UserProfile::Menus::GroupsMenu8370 # order random8371 behaves like User profile menu8372 does not contain any sub menu8373 renders the correct link8374 renders the correct title8375 renders the correct icon8376 renders the correct avatar8377 defines correct active route8378 renders if user is logged in8379 when viewed user is blocked8380 when user is not logged in8381 is not allowed to view the menu item8382 when current user has permission8383 is allowed to view the menu item8384 when current user does not have permission8385 is not allowed to view the menu item8386 when viewed user is banned8387EscapeUtils.escape_url is deprecated. Use CGI.escape instead, performance is similar8388EscapeUtils.escape_url is deprecated. Use CGI.escape instead, performance is similar8389 when user is not logged in8390 is not allowed to view the menu item8391 when current user has permission8392 is allowed to view the menu item8393 when current user does not have permission8394 is not allowed to view the menu item8395UnnestedInFilters::Rewriter8396 #rewrite?8397 when a join table is receiving an IN list query8398 is expected to be falsey8399 when the given relation does not have an `IN` predicate8400 is expected to be falsey8401 when the given relation has an `IN` predicate8402 when there is no index coverage for the used columns8403 is expected to be falsey8404 when there is an index coverage for the used columns8405 is expected to be truthy8406 when there is an ordering8407 when the order is an Arel node8408 is expected to be truthy8409 when the order is a Keyset order8410 is expected to be truthy8411 #rewrite8412 changes the query8413 when the relation has a subquery8414 changes the query8415 when there is an order8416 when the order is an Arel node8417 changes the query8418 when the order is a Keyset order8419 changes the query8420 when the combined attributes include the primary key8421 changes the query8422 when a join table is receiving an IN list query8423 does not rewrite the in statement for the joined table8424 logging8425 logs the call8426RuboCop::MigrationHelpers8427 # order random8428 #array_column?8429 when it matches array: true8430 is expected to eq true8431 when it matches a variable => 1008432 is expected to eq false8433 #in_migration?8434 name: "/gitlab/db/migrate/20200210184420_create_operations_scopes_table.rb", expected: true8435 is expected to eq true8436 name: "/gitlab/db/post_migrate/20200210184420_create_operations_scopes_table.rb", expected: true8437 is expected to eq true8438 name: "/gitlab/db/geo/migrate/20200210184420_create_operations_scopes_table.rb", expected: true8439 is expected to eq true8440 name: "/gitlab/db/geo/post_migrate/20200210184420_create_operations_scopes_table.rb", expected: true8441 is expected to eq true8442 name: "/gitlab/db/elsewhere/20200210184420_create_operations_scopes_table.rb", expected: false8443 is expected to eq false8444 #version8445 is expected to eq 202002101844208446 #time_enforced?8447 name: "/gitlab/db/post_migrate/20200210184420_create_operations_scopes_table.rb", expected: false8448 is expected to eq false8449 name: "/gitlab/db/post_migrate/20220210184420_create_fake_table.rb", expected: false8450 is expected to eq false8451 name: "/gitlab/db/post_migrate/20221019184420_add_id_to_reports_table.rb", expected: true8452 is expected to eq true8453 #in_post_deployment_migration?8454 name: "/gitlab/db/migrate/20200210184420_create_operations_scopes_table.rb", expected: false8455 is expected to eq false8456 name: "/gitlab/db/post_migrate/20200210184420_create_operations_scopes_table.rb", expected: true8457 is expected to eq true8458 name: "/gitlab/db/geo/migrate/20200210184420_create_operations_scopes_table.rb", expected: false8459 is expected to eq false8460 name: "/gitlab/db/geo/post_migrate/20200210184420_create_operations_scopes_table.rb", expected: true8461 is expected to eq true8462 name: "/gitlab/db/elsewhere/20200210184420_create_operations_scopes_table.rb", expected: false8463 is expected to eq false8464Tooling::Danger::FeatureFlag8465 #feature_flag_files8466 retrieves added feature flag files8467 with added added feature flag files8468 returns an array of Found objects8469 without added added feature flag files8470 returns an array of Found objects8471 retrieves modified feature flag files8472 with modified modified feature flag files8473 returns an array of Found objects8474 without modified modified feature flag files8475 returns an array of Found objects8476 retrieves deleted feature flag files8477 with deleted deleted feature flag files8478 returns an array of Found objects8479 without deleted deleted feature flag files8480 returns an array of Found objects8481 Tooling::Danger::FeatureFlag::Found8482 #name8483 returns value from the YAML8484 #introduced_by_url8485 returns value from the YAML8486 #rollout_issue_url8487 returns value from the YAML8488 #milestone8489 returns value from the YAML8490 #type8491 returns value from the YAML8492 #group8493 returns value from the YAML8494 #default_enabled8495 returns value from the YAML8496 #raw8497 returns the raw YAML8498 #group_match_mr_label?8499 when group is nil8500 is true only if MR has no group label8501 when group is not nil8502 is true only if MR has the same group label8503Gitlab::ImportExport::SnippetsRepoRestorer8504 bundle a snippet Git repo8505 when export has no snippet repository bundle8506 behaves like imports snippet repositories8507 is expected not to be empty8508 when export has snippet repository bundles and snippets without them8509 behaves like imports snippet repositories8510 is expected not to be empty8511 when export has only snippet bundles8512 behaves like imports snippet repositories8513 is expected not to be empty8514 when any of the snippet repositories cannot be created8515 continues processing other snippets and returns false8516Projects::BranchesByModeService8517 #execute8518 page is passed8519 uses offset pagination8520 but the page does not contain any branches8521 uses offset pagination8522 search is passed8523 uses offset pagination8524 branch_list_keyset_pagination is disabled8525 uses offset pagination8526 uses gitaly pagination8527 returns branches for the first page8528 when second page is requested8529 returns branches for the first page8530 when last page is requested8531 returns branches after the specified branch8532 filter by mode8533 stale8534 returns stale branches8535 active8536 returns active branches8537Gitlab::Slug::Environment8538 # order random8539 #generate8540 name: "staging-12345678901234567", slug: "staging-123456789-q517sa"8541 is expected to eq "staging-123456789-q517sa"8542 name: "9-staging-123456789012345", slug: "env-9-staging-123-q517sa"8543 is expected to eq "env-9-staging-123-q517sa"8544 name: "staging-1234567890123456", slug: "staging-1234567890123456"8545 is expected to eq "staging-1234567890123456"8546 name: "staging-1234567890123456-", slug: "staging-123456789-q517sa"8547 is expected to eq "staging-123456789-q517sa"8548 name: "production", slug: "production"8549 is expected to eq "production"8550 name: "PRODUCTION", slug: "production-q517sa"8551 is expected to eq "production-q517sa"8552 name: "review/1-foo", slug: "review-1-foo-q517sa"8553 is expected to eq "review-1-foo-q517sa"8554 name: "1-foo", slug: "env-1-foo-q517sa"8555 is expected to eq "env-1-foo-q517sa"8556 name: "1/foo", slug: "env-1-foo-q517sa"8557 is expected to eq "env-1-foo-q517sa"8558 name: "foo-", slug: "foo"8559 is expected to eq "foo"8560 name: "foo--bar", slug: "foo-bar-q517sa"8561 is expected to eq "foo-bar-q517sa"8562 name: "foo**bar", slug: "foo-bar-q517sa"8563 is expected to eq "foo-bar-q517sa"8564 name: "*-foo", slug: "env-foo-q517sa"8565 is expected to eq "env-foo-q517sa"8566 name: "staging-12345678-", slug: "staging-12345678"8567 is expected to eq "staging-12345678"8568 name: "staging-12345678-01234567", slug: "staging-12345678-q517sa"8569 is expected to eq "staging-12345678-q517sa"8570 name: "", slug: "env-q517sa"8571 is expected to eq "env-q517sa"8572 name: nil, slug: "env-q517sa"8573 is expected to eq "env-q517sa"8574Projects::MoveLfsObjectsProjectsService8575 #execute8576 links the lfs objects from existent in source project8577 does not link existent lfs_object in the current project8578 rollbacks changes if transaction fails8579 when remove_remaining_elements is false8580 does not remove remaining lfs objects8581RemoveUnreferencedLfsObjectsWorker8582 #perform8583 removes unreferenced lfs objects8584 leaves referenced lfs objects8585 removes unreferenced lfs objects after project removal8586 behaves like an idempotent worker8587 is labeled as idempotent8588 performs multiple times sequentially without raising an exception8589Tooling::Mappings::JsToSystemSpecsMappings8590 # order random8591 #construct_js_keywords8592 returns a singularized keyword based on the first folder the file is in8593 when the files are under the pages folder8594 captures the second folder8595 #filter_files8596 when no files were changed8597 returns an empty array8598 when JS files were changed8599 returns the path to the JS files8600 when JS files are deleted8601 returns an empty array8602 #system_specs_for_edition8603 when a file is not a ruby spec8604 does not return that file8605 when a file is a ruby spec8606 returns that file8607 when FOSS8608 checks the correct folder8609 when EE8610 checks the correct folder8611 when JiHu8612 checks the correct folder8613 #execute8614 when no JS files were changed8615 does not change the output file8616 when some JS files were changed8617 when the JS files are not present on disk8618 does not change the output file8619 when the JS files are present on disk8620 when no system specs match the JS keyword8621 does not change the output file8622 when a system spec matches the JS keyword8623 adds the new specs to the output file8624Sidebars::Projects::Menus::MergeRequestsMenu8625 behaves like serializable as super_sidebar_menu_args8626 returns hash with provided attributes8627 returns hash with an item_id8628 #render?8629 when repository is not present8630 returns false8631 when repository is present8632 when user can read merge requests8633 returns true8634 when user cannot read merge requests8635 returns false8636 #pill_count8637 returns zero when there are no open merge requests8638 memoizes the query8639 when there are open merge requests8640 returns the number of open merge requests8641 formatting8642 when the count value is over 10008643 returns truncated digits8644EnvironmentHelper8645 #render_deployment_status8646 when using a manual deployment8647 renders a span tag8648 when using a deployment from a build8649 renders a link tag8650 when deploying from a bridge8651 renders a span tag8652 for a blocked deployment8653 indicates the status8654 #environments_detail_data_json8655 returns the correct data8656Gitlab::Auth::Result8657 when actor is User8658 returns auth_user8659 does not return deploy token8660 when actor is Deploy token8661 returns deploy token8662 does not return auth_user8663 #authentication_abilities_include?8664 when authentication abilities are empty8665 returns false8666 when authentication abilities are not empty8667 returns false when ability is not allowed8668 returns true when ability is allowed8669 #can_perform_action_on_project?8670 returns if actor can do perform given action on given project8671 returns if actor cannot do perform given action on given project8672 #can?8673 returns if actor can do perform given action on given project8674 returns if actor cannot do perform given action on given project8675BatchNullifyDependentAssociations8676 .dependent_associations_to_nullify8677 returns only associations with `dependent: :nullify` associations8678 #nullify_dependent_associations_in_batches8679 nullifies multiple settings8680 excludes associations8681ContainerRegistry::DeleteContainerRepositoryWorker8682 # order random8683 #remaining_work_count8684 is expected to eq 38685 #max_running_jobs8686 is expected to eq 28687 #perform_work8688 with no work to do - no container repositories pending deletion8689 will not delete any container repository8690 with work to do8691 picks and destroys the delete scheduled container repository8692 with an error during the tags cleanup8693 does not delete the container repository8694 with an error during the destroy8695 does not delete the container repository8696 with tags left to destroy8697 does not delete the container repository8698 with no tags on the container repository8699 picks and destroys the delete scheduled container repository8700Gitlab::IssuablesCountForState8701 project given8702 provides the project8703 .declarative_policy_class8704 is expected to eq "IssuablePolicy"8705 #for_state_or_opened8706 returns the number of issuables for the given state8707 returns the number of open issuables when no state is given8708 returns the number of open issuables when a nil value is given8709 #[]8710 returns the number of issuables for the given state8711 casts valid states from Strings to Symbols8712 returns 0 when using an invalid state name as a String8713 fast_fail enabled8714 returns the expected value8715 returns -1 when the database times out8716 when store_in_redis_cache is `true`8717 with Issues8718 returns -1 for the requested state8719 when parent group is not present8720 behaves like calculating counts without caching8721 does not store in redis store8722 when params include search filters8723 behaves like calculating counts without caching8724 does not store in redis store8725 when counts are stored in cache8726 does not call finder count_by_state8727 when cache is empty8728 when state counts are under threshold8729 does not store state counts in cache8730 when state counts are over threshold8731 stores state counts in cache8732 with Merge Requests8733 behaves like calculating counts without caching8734 does not store in redis store8735Gitlab::EtagCaching::Router::Rails8736 matches issue title endpoint8737 matches with a project name that includes a suffix of create8738 matches with a project name that includes a prefix of create8739 matches project pipelines endpoint8740 matches commit pipelines endpoint8741 matches new merge request pipelines endpoint8742 matches merge request pipelines endpoint8743 matches build endpoint8744 does not match blob with confusing name8745 matches the cluster environments path8746 matches the environments path8747 does not match the operations environments list path8748 matches pipeline#show endpoint8749 has a valid feature category for every route8750 has a caller_id for every route8751 has an urgency for every route8752 .cache_key8753 uses request path as cache key8754Gitlab::JiraImport::Stage::ImportLabelsWorker8755 modules8756 behaves like include import workers modules8757 is expected to includes the ApplicationWorker module8758 is expected to includes the Gitlab::JiraImport::QueueOptions module8759 is expected to includes the Gitlab::JiraImport::ImportWorker module8760 #perform8761 when import did not start8762 behaves like cannot do Jira import8763 does not advance to next stage8764 behaves like does not advance to next stage8765 does not advance to next stage8766 when import started8767 executes labels importer8768 behaves like advance to next stage8769 advances to issues stage8770Gitlab::SearchContext::ControllerConcern8771 exposing @project8772 behaves like has the proper context8773 aggregate_failures8774 when the project is owned by a group8775 behaves like has the proper context8776 aggregate_failures8777 exposing @group8778 behaves like has the proper context8779 aggregate_failures8780 exposing @snippet, @snippets8781 behaves like has the proper context8782 aggregate_failures8783 exposing @ref8784 behaves like has the proper context8785 aggregate_failures8786BulkInsertableAssociations8787-- create_table(:_test_bulk_parents, {:force=>true})8788 -> 0.0062s8789-- create_table(:_test_bulk_foos, {:force=>true})8790 -> 0.0037s8791-- create_table(:_test_bulk_bars, {:force=>true})8792 -> 0.0036s8793-- create_table(:_test_simple_bars, {:force=>true})8794 -> 0.0035s8795 saving bulk insertable associations8796 can disable bulk-inserts within a bulk-insert block8797 when items already have IDs8798 stores nothing and raises an error8799 when items have no IDs set8800 stores them all and updates items with IDs8801 when items are empty8802 does nothing8803 when relation name does not match class name8804 stores them all8805 with multiple threads8806 isolates bulk insert behavior between threads8807 with multiple associations8808 isolates writes between associations8809 passing bulk insert arguments8810 disables validations on target association8811 when association is not bulk-insert safe8812 saves it normally8813 when association is not has_many8814 saves it normally8815 when an item is not valid8816 .save8817 invalidates the parent and returns false8818 .save!8819 invalidates the parent and raises error8820-- drop_table(:_test_bulk_foos, {:force=>true})8821 -> 0.0020s8822-- drop_table(:_test_bulk_bars, {:force=>true})8823 -> 0.0013s8824-- drop_table(:_test_simple_bars, {:force=>true})8825 -> 0.0014s8826-- drop_table(:_test_bulk_parents, {:force=>true})8827 -> 0.0012s8828Gitlab::Ci::Parsers::Security::SecretDetection8829 #parse!8830 when parsing valid reports8831 report_format: :secret_detection8832 parses all identifiers and findings8833 generates expected location8834 generates expected metadata_version8835 when parsing an empty report8836 is expected to be empty8837Preloaders::ProjectRootAncestorPreloader8838 # order random8839 when the preloader is not used8840 behaves like executes N matching DB queries8841 executes the specified root_ancestor queries8842 strong_memoizes the correct root_ancestor8843 when the preloader is used8844 when no additional preloads are provided8845 behaves like executes N matching DB queries8846 executes the specified root_ancestor queries8847 strong_memoizes the correct root_ancestor8848 when additional preloads are provided8849 behaves like executes N matching DB queries8850 executes the specified root_ancestor queries8851 strong_memoizes the correct root_ancestor8852 when projects are an array and not an ActiveRecord::Relation8853 behaves like executes N matching DB queries8854 executes the specified root_ancestor queries8855 strong_memoizes the correct root_ancestor8856 when using a :group sti name and passing projects in a user namespace8857 does not load a nil value for root_ancestor8858Packages::Helm::ExtractionWorker8859 #perform8860 with valid package file8861 behaves like an idempotent worker8862 is labeled as idempotent8863 performs multiple times sequentially without raising an exception8864 updates package and package file8865 with invalid package file id8866 doesn't update helm_file_metadatum8867 with controlled errors8868 with an empty package file8869 behaves like handling error8870 mark the package as errored8871 with an invalid YAML8872 behaves like handling error8873 mark the package as errored8874 with an invalid Chart.yaml8875 behaves like handling error8876 mark the package as errored8877 with uncontrolled errors8878 behaves like handling error8879 mark the package as errored8880DeployTokenPolicy8881 creating a deploy key8882 when user is maintainer8883 is expected to be allowed :create_deploy_token8884 when user is not maintainer8885 is expected to be disallowed :create_deploy_token8886 updating a deploy key8887 when user is maintainer8888 is expected to be allowed :update_deploy_token8889 when user is not maintainer8890 is expected to be disallowed :update_deploy_token8891Gitlab::Checks::ProjectCreated8892 .fetch_message8893 with a project created message queue8894 returns project created message8895 deletes the project created message from redis8896 with a message in the legacy key8897 returns and deletes the legacy message8898 with no project created message queue8899 returns nil8900 #add_message8901 queues a project created message8902 when user is nil8903 handles anonymous push8904Ci::BuildTrace8905 returns formatted trace8906 delegated methods8907 is expected to delegate #state to the #trace object8908 is expected to delegate #append to the #trace object8909 is expected to delegate #truncated to the #trace object8910 is expected to delegate #offset to the #trace object8911 is expected to delegate #size to the #trace object8912 is expected to delegate #total to the #trace object8913 is expected to delegate #build_id to the #build object as #id8914 is expected to delegate #build_status to the #build object as #status8915 is expected to delegate #build_complete? to the #build object as #complete?8916 with invalid UTF-8 data8917 returns valid UTF-8 data8918Gitlab::QuickActions::TimelineTextAndDateTimeSeparator8919 # order random8920 execute8921 with invalid parameters in arg line8922 with empty arg line8923 behaves like arg line with invalid parameters8924 returns nil8925 with invalid date8926 behaves like arg line with invalid parameters8927 returns nil8928 behaves like arg line with invalid parameters8929 returns nil8930 behaves like arg line with invalid parameters8931 returns nil8932 with invalid time8933 behaves like arg line with invalid parameters8934 returns nil8935 when date is invalid in arg line8936 return current date8937 with valid parameters8938 when only timeline text present in arg line8939 behaves like arg line with valid parameters8940 returns text and date time array8941 when only timeline text and time present in arg line8942 behaves like arg line with valid parameters8943 returns text and date time array8944 when timeline text and date is present in arg line8945 behaves like arg line with valid parameters8946 returns text and date time array8947HasEnvironmentScope8948 is expected to allow :environment_scope to be ‹"*"›8949 is expected to allow :environment_scope to be ‹"review/*"›8950 is expected not to allow :environment_scope to be ‹""›8951 is expected not to allow :environment_scope to be ‹"!!()()"›8952 is expected to validate that :key is case-sensitively unique within the scope of :project_id and :environment_scope, producing a custom validation error on failure8953 .on_environment8954 returns scoped objects8955 returns only the most relevant object if relevant_only is true8956 returns scopes ordered by lowest precedence first8957 #environment_scope=8958 when the new environment_scope is nil8959 strips leading and trailing whitespaces8960 when the new environment_scope has leadind and trailing whitespaces8961 strips leading and trailing whitespaces8962 .for_environment8963 when the environment is present8964 is expected to eq [#<Ci::Variable id: 11, key: [FILTERED], value: nil, encrypted_value: "KpFSIntS8PWB4VWcWISnRw==\n", e...nment_scope: "production/*", masked: false, variable_type: "env_var", raw: false, description: nil>]8965 when the environment is nil8966 is expected to eq [#<Ci::Variable id: 11, key: [FILTERED], value: nil, encrypted_value: "KpFSIntS8PWB4VWcWISnRw==\n", e...lse, environment_scope: "*", masked: false, variable_type: "env_var", raw: false, description: nil>]8967Gitlab::Database::PostgresConstraint8968 # order random8969 #including_column8970 only matches constraints on the given column8971 #not_including_column8972 only matches constraints not including the given column8973 #unique_constraints8974 finds the unique constraints for the table8975 #primary_key_constraints8976 finds the primary key constraint for the table8977 finds the columns in the primary key constraint8978 #check_constraints8979 finds check constraints for the table8980 includes columns for the check constraints8981 #by_table_identifier8982 includes all constraints on the table8983 throws an error if the format is incorrect8984 #valid8985 excludes invalid constraints8986 #primary_or_unique_constraints8987 finds primary and unique constraints8988Gitlab::Ci::Pipeline::Chain::Sequence8989 when one of steps breaks the chain8990 does not process the second step8991 returns a pipeline object8992 when all chains are executed correctly8993 iterates through entire sequence8994 returns a pipeline object8995 adds sequence duration to duration histogram8996 adds step sequence duration to duration histogram8997 records pipeline size by pipeline source in a histogram8998 active jobs by pipeline plan histogram8999 counts all the active jobs9000Gitlab::Ci::Config::Entry::Kubernetes9001 attributes9002 is expected to respond to #namespace9003 is expected to respond to #has_namespace?9004 validations9005 config9006 is a hash containing known keys9007 is expected to be valid9008 is a hash containing an unknown key9009 is expected not to be valid9010 is a string9011 is expected not to be valid9012 namespace9013 is a string9014 is expected to be valid9015 is a hash9016 is expected not to be valid9017 is not present9018 is expected not to be valid9019ErrorTracking::SentryClient::ApiUrls9020 # order random9021 #projects_url9022 behaves like correct url9023 is expected to eq uri "https://sentrytest.gitlab.com/api/0/projects/"9024 behaves like correct url with extra slashes9025 behaves like correct url9026 is expected to eq uri "https://sentrytest.gitlab.com/api/0/projects/"9027 #issue_latest_event_url9028 behaves like correct url9029 is expected to eq uri "https://sentrytest.gitlab.com/api/0/issues/123456/events/latest/"9030 behaves like correct url with extra slashes9031 behaves like correct url9032 is expected to eq uri "https://sentrytest.gitlab.com/api/0/issues/123456/events/latest/"9033 behaves like correctly escapes issue ID9034 with param a string with reserved chars9035 is expected to include "123%24%25"9036 with param a symbol with reserved chars9037 is expected to include "123%24%25"9038 with param an integer9039 is expected to include "12345678"9040 #issues_url9041 behaves like correct url9042 is expected to eq uri "https://sentrytest.gitlab.com/api/0/projects/sentry-org/sentry-project/issues/"9043 behaves like correct url with extra slashes9044 behaves like correct url9045 is expected to eq uri "https://sentrytest.gitlab.com/api/0/projects/sentry-org/sentry-project/issues/"9046 #issue_url9047 behaves like correct url9048 is expected to eq uri "https://sentrytest.gitlab.com/api/0/issues/123456/"9049 behaves like correct url with extra slashes9050 behaves like correct url9051 is expected to eq uri "https://sentrytest.gitlab.com/api/0/issues/123456/"9052 behaves like correctly escapes issue ID9053 with param a string with reserved chars9054 is expected to include "123%24%25"9055 with param a symbol with reserved chars9056 is expected to include "123%24%25"9057 with param an integer9058 is expected to include "12345678"9059ProjectClusterablePresenter9060 #can_create_cluster?9061 when user can create9062 is expected to be truthy9063 when user cannot create9064 is expected to be falsey9065 #index_path9066 is expected to eq "/namespace937/project-1004/-/clusters"9067 #connect_path9068 is expected to eq "/namespace938/project-1005/-/clusters/connect"9069 #new_cluster_docs_path9070 is expected to eq "/namespace939/project-1006/-/clusters/new_cluster_docs"9071 #create_user_clusters_path9072 is expected to eq "/namespace940/project-1007/-/clusters/create_user"9073 #cluster_status_cluster_path9074 is expected to eq "/namespace941/project-1008/-/clusters/1352/cluster_status"9075 #clear_cluster_cache_path9076 is expected to eq "/namespace942/project-1009/-/clusters/1363/clear_cache"9077 #cluster_path9078 is expected to eq "/namespace943/project-1010/-/clusters/1374"9079 #metrics_dashboard_path9080 is expected to eq "/namespace944/project-1011/-/clusters/1385/metrics_dashboard"9081 #learn_more_link9082 is expected to include "user/project/clusters/index"9083Gitlab::Git::User9084 .from_gitaly9085 is expected to eq #<Gitlab::Git::User:0x00007a34f2e92d10 @username="janedoe", @name="Jane Doé", @email="janedoé@example.com", @gl_id="user-123", @timezone="Asia/Shanghai">9086 .from_gitlab9087 when no commit_email has been set9088 is expected to eq #<Gitlab::Git::User:0x00007a34f3767760 @username="user1197", @name="Sidney Jones2296", @email="alice@example.com", @gl_id="user-", @timezone="Asia/Shanghai">9089 when commit_email has been set9090 is expected to eq #<Gitlab::Git::User:0x00007a34f3ef73e0 @username="user1198", @name="Sidney Jones2297", @email="bob@example.com", @gl_id="user-", @timezone="Asia/Shanghai">9091 #==9092 is expected to eq #<Gitlab::Git::User:0x00007a34f4b5b8c0 @username="janedoe", @name="Jane Doé", @email="janedoé@example.com", @gl_id="user-123", @timezone="Asia/Shanghai">9093 is expected not to eq #<Gitlab::Git::User:0x00007a34f5289cc8 @username=nil, @name=nil, @email=nil, @gl_id=nil, @timezone="Asia/Shanghai">9094 is expected not to eq #<Gitlab::Git::User:0x00007a34f74d0958 @username="janedoex", @name="Jane Doé", @email="janedoé@example.com", @gl_id="user-123", @timezone="Asia/Shanghai">9095 is expected not to eq #<Gitlab::Git::User:0x00007a34f58476d8 @username="janedoe", @name="Jane Doéx", @email="janedoé@example.com", @gl_id="user-123", @timezone="Asia/Shanghai">9096 is expected not to eq #<Gitlab::Git::User:0x00007a34f6da2730 @username="janedoe", @name="Jane Doé", @email="janedoé@example.comx", @gl_id="user-123", @timezone="Asia/Shanghai">9097 is expected not to eq #<Gitlab::Git::User:0x00007a34c3bacaf8 @username="janedoe", @name="Jane Doé", @email="janedoé@example.com", @gl_id="user-123x", @timezone="Asia/Shanghai">9098 is expected not to eq #<Gitlab::Git::User:0x00007a34f63d8b50 @username="janedoe", @name="Jane Doé", @email="janedoé@example.com", @gl_id="user-123", @timezone="Etc/UTC">9099 when add_timezone_to_web_operations is disabled9100 ignores timezone arg and sets Etc/UTC by default9101 #to_gitaly9102 creates a Gitaly::User with the correct data9103Packages::Helm::PackagesFinder9104 #execute9105 with project9106 with channel9107 is expected to eq [#<Packages::Package id: 41, project_id: 899, created_at: "2023-10-20 08:56:16.527223918 +0000", upda...ge_type: "helm", creator_id: 2011, status: "default", last_downloaded_at: nil, status_message: nil>]9108 ignores duplicate package files9109 is expected to eq [#<Packages::Package id: 41, project_id: 899, created_at: "2023-10-20 08:56:16.527223918 +0000", upda...ge_type: "helm", creator_id: 2011, status: "default", last_downloaded_at: nil, status_message: nil>]9110 let clients use select id9111 is expected to eq [41]9112 with not existing channel9113 is expected to be empty9114 with no channel9115 is expected to be empty9116 with no helm packages9117 is expected to be empty9118 with no project9119 is expected to be empty9120 when the limit is hit9121 is expected to eq [#<Packages::Package id: 46, project_id: 899, created_at: "2023-10-20 08:56:16.991274777 +0000", upda...ge_type: "helm", creator_id: 2011, status: "default", last_downloaded_at: nil, status_message: nil>]9122Gitlab::Search::Query9123 is expected to be < SimpleDelegator9124 leaves undefined filters in the main query9125 parses filters9126 with an empty filter9127 ignores empty filters9128 with a pipe9129 does not escape the pipe9130 with an exclusive filter9131 negates the filter9132 with filter value in quotes9133 does not break the filter value in quotes9134 with extra white spaces between the query words9135 removes the extra whitespace between tokens9136 with mutliple filename filters9137 creates a filter for each filename in query9138 when multiple extension filters are added9139 creates a filter for each filename and extension in query9140API::Entities::MergeRequestChanges9141 exposes basic entity fields9142 when #expose_raw_diffs? returns false9143 does not access merge_request.raw_diffs9144 when #expose_raw_diffs? returns true9145 does not access merge_request.raw_diffs9146 :overflow field9147 when :access_raw_diffs is true9148 reports false9149Atlassian::JiraIssueKeyExtractor9150 .has_keys?9151 when string contains Jira issue keys9152 is expected to eq true9153 when string does not contain Jira issue keys9154 is expected to eq false9155 #issue_keys9156 returns all valid Jira issue keys9157 when multiple strings are passed in9158 returns all valid Jira issue keys in any of those string9159 with custom_regex9160 returns all valid Jira issue keys9161 with untrusted regex9162 returns all valid Jira issue keys9163ResourceMilestoneEventPolicy9164 # order random9165 #read_milestone9166 allows to read deleted milestone9167 allows to read accessible milestone9168 does not allow to read not accessible milestone9169 #read_resource_milestone_event9170 with non-member user9171 does not allow to read event9172 with member user9173 allows to read event for accessible milestone9174 does not allow to read event for not accessible milestone9175RuboCop::Cop::Performance::ARCountEach9176 # order random9177 when it is haml file9178 when the same object uses count and each9179 flags it as an offense9180 when different object uses count and each9181 does not flag it as an offense9182 when just using count without each9183 does not flag it as an offense9184 when just using each without count9185 does not flag it as an offense9186 when it is not haml file9187 does not flag it as an offense9188Gitlab::GithubImport::Stage::ImportIssuesAndDiffNotesWorker9189 behaves like Gitlab::GithubImport::StageMethods9190 .sidekiq_retries_exhausted9191 tracks the exception and marks the import as failed9192 #import9193 imports the issues and diff notes9194 #importers9195 when optional stage single_endpoint_notes_import is enabled9196 includes single endpoint diff notes importer9197 when optional stage single_endpoint_notes_import is disabled9198 includes default diff notes importer9199projects/issues/show9200 when the issue is related to a sentry error9201 renders a stack trace9202 when the issue is not related to a sentry error9203 does not render a stack trace9204RuboCop::Cop::CodeReuse::Presenter9205 # order random9206 flags the use of a Presenter in a Finder9207 flags the use of a Presenter in a Service class9208 flags the use of a Presenter in a model instance method9209 flags the use of a Service class in a Presenter9210 flags the use of a Presenter in a Serializer9211 flags the use of a Presenter in a model class method9212 flags the use of a Presenter in a worker9213Packages::Npm::PackagesForUserFinder9214 # order random9215 #execute9216 with a project9217 behaves like searches for packages9218 is expected to contain exactly #<Packages::Package id: 47, project_id: 910, created_at: "2023-10-20 08:56:26.862894963 +0000", updat...kage_type: "npm", creator_id: 2028, status: "default", last_downloaded_at: nil, status_message: nil>9219 with a group9220 behaves like searches for packages9221 is expected to contain exactly #<Packages::Package id: 47, project_id: 910, created_at: "2023-10-20 08:56:26.862894963 +0000", updat...kage_type: "npm", creator_id: 2028, status: "default", last_downloaded_at: nil, status_message: nil>9222 when an user is a reporter of both projects9223 is expected to contain exactly #<Packages::Package id: 47, project_id: 910, created_at: "2023-10-20 08:56:26.862894963 +0000", updat...kage_type: "npm", creator_id: 2028, status: "default", last_downloaded_at: nil, status_message: nil> and #<Packages::Package id: 49, project_id: 911, created_at: "2023-10-20 08:56:26.918314949 +0000", updat...kage_type: "npm", creator_id: 2030, status: "default", last_downloaded_at: nil, status_message: nil>9224 when the second project has the package registry disabled9225 behaves like searches for packages9226 is expected to contain exactly #<Packages::Package id: 47, project_id: 910, created_at: "2023-10-20 08:56:26.862894963 +0000", updat...kage_type: "npm", creator_id: 2028, status: "default", last_downloaded_at: nil, status_message: nil>9227Gitlab::InternalEvents::EventDefinitions9228 # order random9229 when using mock data9230 .unique_property9231 when event has valid unique value with a period9232 is returned9233 when event has no periods in unique property9234 fails9235 when event has more than one period in unique property9236 fails9237 when event does not have unique property9238 returns nil9239 .load_configurations9240 when unique property for event is ambiguous9241 logs error when loading9242 .known_events9243 has known events9244 when a metric fails to load9245 loads the healthy metrics9246 when using actual metric definitions9247 they can load9248Gitlab::Ci::Build::Artifacts::Adapters::RawStream9249 #initialize9250 when stream is passed9251 initialized9252 when stream is not passed9253 raises an error9254 #each_blob9255 when file is not empty9256 iterates content9257 when file is empty9258 does not iterate content9259Gitlab::Database::LoadBalancing::ServiceDiscovery::Sampler9260 # order random9261 #sample9262 samples max_replica_pools addresses9263 samples random ports across all hosts9264 returns the same answer for the same input when called multiple times9265 gives a consistent answer regardless of input ordering9266 samples fairly across all hosts9267 when input is an empty array9268 returns an empty array9269 when there are less replicas than max_replica_pools9270 returns the same addresses9271 when max_replica_pools is nil9272 returns the same addresses9273Gitlab::DataBuilder::Alert9274 .build9275 is expected to be a kind of Hash9276 is expected to eq "alert"9277 contains the correct object attributes9278Gitlab::Auth::Saml::AuthHash9279 #groups9280 returns array of groups9281 raw info hash attributes empty9282 returns an empty array9283 #azure_group_overage_claim?9284 when the claim is not present9285 is false9286 when the claim is present9287 is true9288 #authn_context9289 with response_object9290 can extract authn_context9291 with SAML 2.0 response_object9292 can extract authn_context9293 with ADFS SAML response_object9294 can extract authn_context9295 without response_object9296 returns an empty string9297Tooling::Danger::SaasFeature9298 # order random9299 #files9300 retrieves added files9301 when added files contain SaaS feature files9302 returns an array of Found objects9303 when added files does not contain SaaS feature files9304 returns an array of Found objects9305 retrieves modified files9306 when modified files contain SaaS feature files9307 returns an array of Found objects9308 when modified files does not contain SaaS feature files9309 returns an array of Found objects9310 retrieves deleted files9311 when deleted files contain SaaS feature files9312 returns an array of Found objects9313 when deleted files does not contain SaaS feature files9314 returns an array of Found objects9315 Tooling::Danger::SaasFeature::Found9316 #name9317 returns value from the YAML9318 #introduced_by_url9319 returns value from the YAML9320 #milestone9321 returns value from the YAML9322 #group9323 returns value from the YAML9324 #raw9325 returns the raw YAML9326 #group_match_mr_label?9327 when group is nil9328 is true only if MR has no group label9329 when group is not nil9330 is true only if MR has the same group label9331Subscription9332 relationships9333 is expected to belong to project required: false9334 is expected to belong to subscribable required: false9335 is expected to belong to user required: false9336 validations9337 is expected to validate that :subscribable cannot be empty/falsy9338 is expected to validate that :user cannot be empty/falsy9339 validates uniqueness of project_id scoped to subscribable_id, subscribable_type, and user_id9340InvalidGpgSignatureUpdateWorker9341 when GpgKey is found9342 calls NotificationService.new.run9343 when GpgKey is not found9344 does not raise errors9345 does not call NotificationService.new.run9346BizibleHelper9347 #bizible_enabled?9348 when bizible config is not true9349 is expected to be falsy9350 when bizible config is enabled9351 is expected to be truthy9352 with ecomm_instrumentation feature flag disabled9353 is expected to be falsey9354 with ecomm_instrumentation feature flag enabled9355 is expected to be truthy9356 with invite_email present9357 is expected to be falsy9358Ai::ServiceAccessToken9359 # order random9360 .for_category9361 only selects tokens from the selected category9362 .expired9363 selects all expired tokens9364 .active9365 selects all active tokens9366 #token9367 is encrypted9368 validations9369 is expected to validate that :token cannot be empty/falsy9370 is expected to validate that :category cannot be empty/falsy9371 is expected to validate that :expires_at cannot be empty/falsy9372Integrations::ChatMessage::WikiPageMessage9373 behaves like Integrations::ChatMessage9374 when input contains link markup9375 strips all link markup characters9376 without markdown9377 #pretext9378 when :action == "create"9379 returns a message that a new wiki page was created9380 when :action == "update"9381 returns a message that a wiki page was updated9382 #attachments9383 when :action == "create"9384 returns the commit message for a new wiki page9385 when :action == "update"9386 returns the commit message for an updated wiki page9387 with markdown9388 #pretext9389 when :action == "create"9390 returns a message that a new wiki page was created9391 when :action == "update"9392 returns a message that a wiki page was updated9393 #attachments9394 when :action == "create"9395 returns the commit message for a new wiki page9396 when :action == "update"9397 returns the commit message for an updated wiki page9398 #activity9399 when :action == "create"9400 returns the attachment for a new wiki page9401 when :action == "update"9402 returns the attachment for an updated wiki page9403Gitlab::Email::Handler9404 .for9405 picks issue handler if there is no merge request prefix9406 picks merge request handler if there is merge request key9407 returns nil if no handler is found9408 returns nil if provided email is nil9409 key matches the reply_key of a notification9410 picks note handler9411 key matches the reply_key of a notification, along with an unsubscribe suffix9412 picks unsubscribe handler9413 new issue email9414 return new issue handler9415 a Service Desk email9416 uses the Service Desk handler9417 regexps are set properly9418 picks each handler at least once9419 can pick exactly one handler for each address9420Gitlab::BitbucketImport::Stage::ImportPullRequestsWorker9421 # order random9422 #perform9423 when the import succeeds9424 schedules the next stage9425 logs stage start and finish9426 when project does not exists9427 does not call the importer9428 when project import state is not `started`9429 does not call the importer9430 when the importer fails9431 does not schedule the next stage and raises error9432 behaves like Gitlab::BitbucketImport::StageMethods9433 .sidekiq_retries_exhausted9434 tracks the import failure9435 .perform9436 executes the import9437MemberSerializer9438 group member9439 handles last group owner assignment9440 behaves like members.json9441 is expected to match schema "members"9442 project member9443 does not invoke group owner assignment9444 behaves like members.json9445 is expected to match schema "members"9446Ci::CompareCodequalityReportsService9447 #execute9448 when head pipeline has a codequality report9449 returns status and data9450 when base and head pipelines have codequality reports9451 returns status and data9452Gitlab::Ci::Config::External::Mapper::Matcher9453 # order random9454 #process9455 returns an array of file objects9456 when a location is not valid9457 raises an error9458 when the invalid location includes a masked variable9459 raises an error with a masked sentence9460 when a location is ambiguous9461 raises an error9462Projects::EnableDeployKeyService9463 enables the key9464 trying to add an unaccessable key9465 returns nil if the key cannot be added9466 add the same key twice9467 returns existing key9468Gitlab::RequestForgeryProtection9469 logs to /dev/null9470 .call9471 when the request method is GET9472 does not raise an exception9473 when the request method is POST9474 when the CSRF token is valid9475 does not raise an exception9476 when the CSRF token is invalid9477 raises an ActionController::InvalidAuthenticityToken exception9478 .verified?9479 does not modify the env9480 when the request method is GET9481 returns true9482 when the request method is POST9483 when the CSRF token is valid9484 returns true9485 when the CSRF token is invalid9486 returns false9487Gitlab::GithubImport::Representation::PullRequests::ReviewRequests9488 # order random9489 .from_json_hash9490 behaves like Review requests9491 returns an instance of Review Request9492 for returned Review Requests9493 includes merge request id9494 includes reviewers9495 #github_identifiers9496 returns a hash with needed identifiers9497 .from_api_response9498 behaves like Review requests9499 returns an instance of Review Request9500 for returned Review Requests9501 includes merge request id9502 includes reviewers9503Gitlab::Diff::Formatters::TextFormatter9504 behaves like position formatter9505 #key9506 is expected to eq [123, 456, 789, "35bd01186d18c9f4842e2f377cc780a95bab7bcf", "02fa17b1a8378a17c3103dc5a6cb16a5f73a1433", 1, 2]9507 #complete?9508 when there are missing key attributes9509 is expected to be truthy9510 when old_line and new_line are nil9511 is expected to be falsy9512 #to_h9513 is expected to eq {:base_sha=>123, :head_sha=>789, :ignore_whitespace_change=>false, :line_range=>nil, :new_line=>2, :n...h=>"new_path.txt", :old_line=>1, :old_path=>"old_path.txt", :position_type=>"text", :start_sha=>456}9514 #==9515 is expected to eq #<Gitlab::Diff::Formatters::TextFormatter:0x00007a34f3ab5890 @old_line=1, @new_line=2, @line_range=ni...e, @old_path="old_path.txt", @new_path="new_path.txt", @base_sha=123, @start_sha=456, @head_sha=789>9516 #line_age9517 when there is only new_line9518 is expected to eq "new"9519 when there is only old_line9520 is expected to eq "old"9521 #==9522 is false when the line_range changes9523 is true when the line_range doesn't change9524Ci::DownloadableArtifactEntity9525 #as_json9526 contains required fields9527 when user cannot read job artifact9528 returns only artifacts readable by user9529Ci::AbortPipelinesService9530 #execute9531 with project pipelines9532 fails all running pipelines and related jobs9533 avoids N+1 queries9534 with live build logs9535 makes failed builds with stale trace visible9536Sidebars::Admin::Panel9537 # order random9538 #aria_label9539 returns the correct aria label9540 behaves like a panel instantiable by the anonymous user9541 is expected to be a kind of Sidebars::Admin::Panel9542 #super_sidebar_context_header9543 returns a hash with the correct title and icon9544 behaves like a panel with uniquely identifiable menu items9545 all menu_items have unique item_id9546 all menu_items have an item_id9547Gitlab::ImportExport::WikiRepoSaver9548 bundle a wiki Git repo9549 bundles the repo successfully9550 when the repo is empty9551 bundles the repo successfully9552Resolvers::Projects::ForkTargetsResolver9553 #resolve9554 returns forkable namespaces9555 when a user cannot fork the project9556 does not return results9557Boards::Visits::CreateService9558 #execute9559 when a project board9560 behaves like boards recent visit create service9561 returns nil when there is no user9562 returns nil when database is read only9563 records the visit9564 when a group board9565 behaves like boards recent visit create service9566 returns nil when there is no user9567 returns nil when database is read only9568 records the visit9569Gitlab::Ci::Build::Rules::Rule::Clause::If9570 #satisfied_by?9571 when expression is a basic string comparison9572 when comparison is true9573 is expected to eq true9574 when comparison is false9575 is expected to eq false9576 when expression is a regexp9577 when comparison is true9578 is expected to eq true9579 when comparison is false9580 is expected to eq false9581 when both side of the expression are variables9582 when comparison is true9583 is expected to eq true9584 when comparison is false9585 is expected to eq false9586Gitlab::Seeder9587 Namespace9588OK9589 has not_mass_generated scope9590OK9591 includes NamespaceSeed module9592 .quiet9593OK9594 disables database logging9595OK9596 disables mail deliveries9597OK9598 disables new note notifications9599 .log_message9600 prepends timestamp to the logged message9601Gitlab::UsageDataCounters9602 .usage_data_counters9603 is expected to all respond to #totals9604 is expected to all respond to #fallback_totals9605 .count9606 increases a view counter9607 when event_name is not defined9608 raises an exception9609Database::MonitorLockedTablesWorker9610 # order random9611 #perform9612 when running with single database9613 skips executing the job9614 when running in decomposed database9615 when the feature flag is disabled9616 skips executing the job (PENDING: Skipping because ci is shared or doesn't not exist)9617 when the feature flag is enabled9618 calls TablesLocker with dry_run enabled (PENDING: Skipping because ci is shared or doesn't not exist)9619 reports the tables that need to be locked on both databases main and ci (PENDING: Skipping because ci is shared or doesn't not exist)9620 with automatically locking the unlocked tables9621 when there are no tables to be locked9622 does not call the Database::LockTablesWorker (PENDING: Skipping because ci is shared or doesn't not exist)9623 when there are tables to be locked9624 when feature flag lock_tables_in_monitoring is enabled9625 locks the tables that need to be locked (PENDING: Skipping because ci is shared or doesn't not exist)9626 when feature flag lock_tables_in_monitoring is disabled9627 does not lock the tables that need to be locked (PENDING: Skipping because ci is shared or doesn't not exist)9628API::Validations::Validators::GitSha9629 valid sha9630 does not raise a validation error9631 empty params9632 raises a validation error9633 invalid sha9634 raises a validation error9635MailScheduler::IssueDueWorker9636 #perform9637 sends emails for open issues due tomorrow in the project specified9638Tooling::Danger::SidekiqQueues9639 #changed_queue_files9640 modified_files: ["app/workers/all_queues.yml", "ee/app/workers/all_queues.yml", "foo"], changed_queue_files: ["app/workers/all_queues.yml", "ee/app/workers/all_queues.yml"]9641 is expected to contain exactly "app/workers/all_queues.yml" and "ee/app/workers/all_queues.yml"9642 modified_files: ["app/workers/all_queues.yml", "ee/app/workers/all_queues.yml"], changed_queue_files: ["app/workers/all_queues.yml", "ee/app/workers/all_queues.yml"]9643 is expected to contain exactly "app/workers/all_queues.yml" and "ee/app/workers/all_queues.yml"9644 modified_files: ["app/workers/all_queues.yml", "foo"], changed_queue_files: ["app/workers/all_queues.yml"]9645 is expected to contain exactly "app/workers/all_queues.yml"9646 modified_files: ["ee/app/workers/all_queues.yml", "foo"], changed_queue_files: ["ee/app/workers/all_queues.yml"]9647 is expected to contain exactly "ee/app/workers/all_queues.yml"9648 modified_files: ["foo"], changed_queue_files: []9649 is expected to contain exactly9650 modified_files: [], changed_queue_files: []9651 is expected to contain exactly9652 #added_queue_names9653 returns queue names added by this change9654 #changed_queue_names9655 returns names for queues whose attributes were changed9656 ignores removed queues9657Types::RepositoryType9658 is expected to eq "Repository"9659 is expected to require graphql authorizations :read_code9660 is expected to have graphql field :root_ref9661 is expected to have graphql field :tree9662 is expected to have graphql field :paginated_tree and {:calls_gitaly?=>true, :max_page_size=>100}9663 is expected to have graphql field :exists and {:calls_gitaly?=>true, :complexity=>2}9664 is expected to have graphql field :blobs9665 is expected to have graphql field :branch_names and {:calls_gitaly?=>true, :complexity=>170}9666 is expected to have graphql field :disk_path9667Gitlab::GithubImport::PageCounter9668 #initialize9669 sets the initial page number to 1 when no value is cached9670 sets the initial page number to the cached value when one is present9671 when gists import9672 uses gists specific key9673 #set9674 overwrites the page number when the given number is greater than the current number9675 does not overwrite the page number when the given number is lower than the current number9676 #expire!9677 expires the current page counter9678Types::Clusters::AgentTokenType9679 is expected to eq "ClusterAgentToken"9680 is expected to require graphql authorizations :read_cluster_agent9681 is expected to have graphql fields :cluster_agent, :created_at, :created_by_user, :description, :id, :last_used_at, :name, and :status9682Projects::PipelineHelper9683 #js_pipeline_tabs_data9684 returns pipeline tabs data9685 #js_pipeline_details_header_data9686 returns pipeline details header data9687Gitlab::Ci::Variables::Builder::Release9688 # order random9689 #variables9690 when the release is present9691 contains all the variables9692 for large description9693 truncates9694 when description is nil9695 returns without error9696 when the release is not present9697 contains no variables9698RuboCop::Cop::API::EnsureStringDetail9699 # order random9700 when in_api? == true9701 when detail field uses a string9702 does not add an offense9703 when detail field uses interpolation in a string9704 does not add an offense9705 when detail field uses a multiline string9706 does not add an offense9707 when detail field uses a constant9708 does not add an offense (PENDING: No reason given)9709 when detail field uses a HEREDOC string9710 does not add an offense9711 when detail field uses an array9712 adds an offense9713 when detail field is outside of desc block9714 does not add an offense9715 when in_api? == false9716 does not add an offense9717Import/Export attribute configuration9718 has no new columns9719Integrations::ChatMessage::IssueMessage9720 behaves like Integrations::ChatMessage9721 when input contains link markup9722 strips all link markup characters9723 without markdown9724 #initialize9725 returns a non-null description9726 open9727 returns a slack-link sanitized message regarding opening of issues9728 close9729 returns a message regarding closing of issues9730 reopen9731 returns a message regarding reopening of issues9732 with markdown9733 open9734 returns a message regarding opening of issues9735 close9736 returns a message regarding closing of issues9737 #attachment_color9738 returns the correct color9739StubMemberAccessLevel9740 # order random9741 stub_member_access_level9742 with project9743 behaves like access level stubs9744 stubs max member access level per user9745 fails for unstubbed access9746 fails for invalid access level9747 with group9748 behaves like access level stubs9749 stubs max member access level per user9750 fails for unstubbed access9751 fails for invalid access level9752 with unsupported object9753 raises an error9754Users::GroupCallout9755 behaves like having unique enum values9756 has unique values in "feature_name"9757 relationships9758 is expected to belong to group required: false9759 validations9760 is expected to validate that :group cannot be empty/falsy9761 is expected to validate that :feature_name cannot be empty/falsy9762 is expected to validate that :feature_name is unique within the scope of :user_id and :group_id9763 #source_feature_name9764 provides string based off source and feature9765Database::BatchedBackgroundMigrationsFinder9766 #execute9767 returns migrations order by created_at (DESC)9768 limits the number of returned migrations9769ProductAnalytics::EventParams9770 .parse_event_params9771 extracts all params from raw event9772 .has_required_params?9773 aid and eid are present9774 is expected to be truthy9775 aid and eid are missing9776 is expected to be falsey9777 eid is missing9778 is expected to be falsey9779Gitlab::SQL::Except9780 behaves like SQL set operator9781 .operator_keyword9782 is expected to eq "EXCEPT"9783 #to_sql9784 returns a String joining relations together using a EXCEPT9785 skips Model.none segments9786 uses EXCEPT ALL when removing duplicates is disabled9787 returns `NULL` if all relations are empty9788 when uneven select values are used9789 raises error9790 remove_order parameter9791 when remove_order: true9792 removes the ORDER BY from the query9793 when remove_order: false9794 does not remove the ORDER BY from the query9795CodequalityDegradationEntity9796 #as_json9797 when sast_reports_in_inline_diff is disabled9798 does not contain fingerprint9799 when codequality contains an error9800 when line is included in location9801 contains correct codequality degradation details9802 when line is included in positions9803 contains correct codequality degradation details9804 when severity is capitalized9805 lowercases severity9806Types::IssueSortEnum9807 is expected to eq "IssueSort"9808 exposes all the existing issue sort values9809 behaves like common sort values9810 exposes all the existing common sort values9811Packages::MlModel::CreatePackageFileService9812 # order random9813 #execute9814 without existing package9815 creates package file9816 with existing package9817 adds the package file and updates status and ci_build9818Gitlab::BitbucketServerImport::Importers::LfsObjectsImporter9819 # order random9820 #execute9821 when lfs is enabled9822 imports each lfs object in parallel9823 logs its progress9824 when LFS list download fails9825 rescues and logs the exception9826 when LFS is not enabled9827 logs progress but does nothing9828Import::ManifestProviderRepoEntity9829 behaves like exposes required fields for import entity9830 exposes required fields9831 correctly exposes id9832 correctly exposes full name9833 correctly exposes sanitized name9834 correctly exposes provider link9835Clusters::Agents::CreateActivityEventService9836 #execute9837 creates an activity event record9838 schedules the cleanup worker9839 when activity event creation fails9840 tracks the exception without raising9841Types::Packages::Helm::MaintainerType9842 is expected to eq "PackageHelmMaintainerType"9843 includes helm maintainer fields9844Projects::ImportExport::RelationExportUpload9845 stores export file9846 associations9847 is expected to belong to relation_export required: false9848Gitlab::Database::Type::Color9849 serializes by calling #to_s9850 serializes nil to nil9851 casts by calling Color::new9852 accepts colors as arguments to cast9853 allows nil database values9854 tells us what is serializable9855 tells us what is not serializable9856Gitlab::Usage::Metrics::Instrumentations::CountBoardsMetric9857 behaves like a correct instrumented metric value and query9858 behaves like a correct instrumented metric value9859 has correct value9860 behaves like a correct instrumented metric query9861 has correct generate query9862MergeRequests::AssignsMergeParams9863 raises an error when used from an instance that does not respond to #current_user9864 #assign_allowed_merge_params9865 only assigns known parameters to the merge request9866 returns a hash without the known merge params9867 the force_remove_source_branch param9868 assigns the param if the user is allowed to do that9869 only removes the param if the user is not allowed to do that9870Gitlab::Usage::Metrics::Instrumentations::CountProjectSnippetsMetric9871 # order random9872 with a timeframe of all9873 behaves like a correct instrumented metric value9874 has correct value9875 with a time_frame of 28 days9876 behaves like a correct instrumented metric value9877 has correct value9878Gitlab::Instrumentation::RateLimitingGates9879 .gates9880 returns an empty array when no gates are tracked9881 returns all gates used in the request9882 deduplicates its results9883 .payload9884 returns the gates in a hash9885Gitlab::GlobalId::Deprecations9886 .deprecated?9887 returns a boolean to signal if model name has a deprecation9888 .deprecation_for9889 returns the deprecation for the model if it exists9890 .deprecation_by9891 returns the deprecation by the model if it exists9892 .apply_to_graphql_name9893 returns the corresponding graphql_name of the GID for the new model9894 returns the same value if there is no deprecation9895Gitlab::Ci::Status::Skipped9896 #text9897 is expected to eq "Skipped"9898 #label9899 is expected to eq "skipped"9900 #icon9901 is expected to eq "status_skipped"9902 #favicon9903 is expected to eq "favicon_status_skipped"9904 #group9905 is expected to eq "skipped"9906 #details_path9907 is expected to be nil9908Gitlab::Memory::UploadAndCleanupReports9909 # order random9910 #initalize9911 when sleep_time_seconds is passed through the environment9912 initializes with these settings9913 when sleep_time_seconds is passed through the initializer9914 initializes with these settings9915 when `sleep_time_seconds` is not passed9916 initialized with the default9917 #call9918 invokes the uploader and cleans the files9919 when there is an exception9920 logs it and does not crash the loop9921API::Entities::Branch9922 #as_json9923 includes basic fields9924Gitlab::Ci::Config::Entry::Product::Variables9925 validations9926 when entry config value is correct9927 #value9928 returns hash with key value strings9929 #errors9930 does not append errors9931 #valid?9932 is valid9933 with only one variable9934 #valid?9935 is valid9936 #errors9937 does not append errors9938Types::Kas::AgentMetadataType9939 is expected to eq "AgentMetadata"9940 is expected to eq "Information about a connected Agent"9941 is expected to have graphql fields :version, :commit, :pod_namespace, and :pod_name9942ExploreHelper9943 #explore_nav_links9944 has all the expected links by default9945 #public_visibility_restricted?9946 delegates to Gitlab::VisibilityLevel9947 #projects_filter_items9948 returns correct dropdown items9949 #projects_filter_selected9950 when visibility_level is present9951 returns corresponding item9952 when visibility_level is empty9953 returns corresponding item9954Resolvers::CommitPipelinesResolver9955 resolves pipelines for commit and ref9956Gitlab::Ci::Config::External::Mapper::Normalizer9957 # order random9958 #process9959 converts locations to canonical form9960Resolvers::Ci::RunnerPlatformsResolver9961 #resolve9962 returns all possible runner platforms9963ImpersonationAccessTokenSerializer9964 # order random9965 #represent9966 can render a single token9967 can render a collection of tokens9968CalendarHelper9969 #calendar_url_options9970 when signed in9971 includes the current_user's feed_token9972 when signed out9973 does not have a feed_token9974 when feed token disabled9975 does not have a feed_token9976Gitlab::Database::HealthStatus::Logger9977 # order random9978 excludes context9979 behaves like a json logger9980 formats strings9981 formats hashes9982Types::CommitSignatures::GpgSignatureType9983 # order random9984 is expected to eq "GpgSignature"9985 is expected to include Types::CommitSignatureInterface9986 is expected to require graphql authorizations :download_code9987 contains attributes related to GPG signatures9988GroupAccessTokenEntity9989 when bot is a member of the group9990 has the correct attributes9991 when bot is unrelated to the group9992 has the correct attributes9993profiles/notifications/show9994 when there is no database value for User#notification_email9995 displays the correct elements9996 when there is a database value for User#notification_email9997 displays the correct elements9998Gitlab::SidekiqMiddleware::PauseControl9999 # order random10000 .for10001 returns the right class for `zoekt`10002 returns the right class for `none`10003 returns nil when passing an unknown key10004Gitlab::GithubImport::PullRequests::ImportReviewWorker10005 # order random10006 is expected to includes the Gitlab::GithubImport::ObjectImporter module10007 #representation_class10008 is expected to eq Gitlab::GithubImport::Representation::PullRequestReview10009 #importer_class10010 is expected to eq Gitlab::GithubImport::Importer::PullRequests::ReviewImporter10011 #object_type10012 is expected to eq :pull_request_review10013help/instance_configuration10014 General Sections:10015 has links to several sections10016 has several sections10017Gitlab::GithubImport::Stage::ImportProtectedBranchesWorker10018 # order random10019 behaves like Gitlab::GithubImport::StageMethods10020 .sidekiq_retries_exhausted10021 tracks the exception and marks the import as failed10022 #import10023 imports all the pull requests10024SystemCheck::App::GitlabCableConfigExistsCheck10025 # order random10026 #check?10027 when config/cable.yml exists10028 is expected to eq true10029 when config/cable.yml does not exist10030 is expected to eq false10031GroupDeployKeyEntity10032 returns group deploy keys with a group a user can read10033 is expected to eq {:can_edit=>false, :created_at=>2023-10-20 08:57:17.950746658 +0000, :expires_at=>nil, :fingerprint=>..., :id=>1, :title=>"My title 1003", :updated_at=>2023-10-20 08:57:17.950746658 +0000, :user_id=>2103}10034Gitlab::ExternalAuthorization::Logger10035 .log_access10036 logs a nice message for an access request10037 does not trip without a project path10038 adds the load time for cached accesses10039API::Github::Entities10040 API::Github::Entities::User10041 aggregate_failures10042 with avatar10043 is expected to include "http://localhost/uploads/-/system/user/avatar/"10044Gitlab::Database::PgDepend10045 # order random10046 .from_pg_extension10047 when having views as dependency10048 returns pg_stat_statements10049Gitlab::Database::LoadBalancing::Logger10050 # order random10051 excludes context10052 behaves like a json logger10053 formats strings10054 formats hashes10055MembersDestroyer::UnassignIssuablesWorker10056 calls the Members::UnassignIssuablesService with the params it was given10057 when unsupported membership source entity10058 exits early and logs error10059API::Entities::Snippets::RepositoryStorageMove10060 #as_json10061 includes basic fields10062Banzai::Filter::MarkdownEngines::CommonMark10063 # order random10064 defaults to generating sourcepos10065 turns off sourcepos10066Gitlab::GrapeLogging::Loggers::PerfLogger10067 .parameters10068 when no performance data present10069 is expected not to include {:redis_calls => 1}10070 when performance data present10071 is expected to include {:redis_calls => 1}10072pwa/manifest10073 # order random10074 view caching10075 when appearance is unchanged10076 reuses the cached view10077 when appearance has changed10078 does not use the cached view10079Sidebars::Projects::SuperSidebarMenus::CodeMenu10080 # order random10081 has title and sprite_icon10082 defines list of NilMenuItem placeholders10083RuboCop::Cop::SidekiqOptionsQueue10084 # order random10085 does not register an offense when `sidekiq_options` is used with another option10086 registers an offense when `sidekiq_options` is used with the `queue` option10087Sidebars::Groups::SuperSidebarMenus::BuildMenu10088 # order random10089 has title and sprite_icon10090 defines list of NilMenuItem placeholders10091Types::AlertManagement::DomainFilterEnum10092 is expected to eq "AlertManagementDomainFilter"10093 exposes all the severity values10094Gitlab::MergeRequests::Mergeability::RedisInterface10095 #save_check10096 saves the hash10097 #retrieve_check10098 returns the hash10099API::Entities::Changelog10100 exposes correct attributes10101 exposes correct notes10102Mattermost::Client10103 JSON parse error10104 yields an error on malformed JSON10105/builds/gitlab-org/gitlab/spec/lib/mattermost/client_spec.rb:12: warning: redefining constant Struct::Request10106 shows a client error if the request was unsuccessful10107SubscribableBannerHelper10108 #display_subscription_banner!10109 is over-written in EE10110Resolvers::AuditEvents::AuditEventDefinitionsResolver10111 # order random10112 #resolve10113 returns an array of audit event definitions10114Onboarding::UserAddedWorker#perform10115 # order random10116 behaves like records an onboarding progress action10117 is expected to receive execute({:action=>:user_added}) 1 time10118Gitlab::Graphql::QueryAnalyzers::AST::LoggerAnalyzer10119 #result10120 returns the complexity, depth, duration, etc10121Types::PermissionTypes::Project10122 is expected to have graphql field :read_environment10123Gitlab::Ci::Config::Entry::Includes10124 # order random10125 #initialize10126 does not increase aspects10127SyntheticNote10128 #to_ability_name10129 is expected to eq "note"10130Gitlab::GithubImport::Importer::IssueAndLabelLinksImporter10131 #execute10132 imports an issue and its labels10133Types::DependencyProxy::BlobType10134 includes dependency proxy blob fields10135Types::LimitedCountableConnectionType10136 has the expected fields10137ExportHelper10138 #project_export_descriptions10139 includes design management10140auto_explain log contains 1552 entries for main, writing to /builds/gitlab-org/gitlab/auto_explain/rspec-unit-pg14-single-db-ci-connection-22-28.326.main.ndjson.gz10141took 39.55515462810142auto_explain log contains 1553 entries for ci, writing to /builds/gitlab-org/gitlab/auto_explain/rspec-unit-pg14-single-db-ci-connection-22-28.326.ci.ndjson.gz10143took 37.05792584410144Knapsack report was generated. Preview:10146 "spec/lib/gitlab/git_access_spec.rb": 283.3586844679994,10147 "spec/services/merge_requests/push_options_handler_service_spec.rb": 194.14648964800017,10148 "spec/models/project_team_spec.rb": 145.85820549799973,10149 "spec/lib/gitlab/database/query_analyzers/prevent_set_operator_mismatch/select_stmt_spec.rb": 23.798665063000044,10150 "spec/services/snippets/update_service_spec.rb": 61.204428083000494,10151 "spec/helpers/integrations_helper_spec.rb": 25.859752526000193,10152 "spec/lib/gitlab/email/handler/service_desk_handler_spec.rb": 67.06503384799998,10153 "spec/lib/gitlab/git_access_snippet_spec.rb": 45.58821133699985,10154 "spec/services/resource_access_tokens/create_service_spec.rb": 39.28750650399979,10155 "spec/lib/gitlab/auth/o_auth/user_spec.rb": 27.464572371999566,10156 "spec/models/protected_branch_spec.rb": 30.812589459000264,10157 "spec/models/concerns/integrations/has_data_fields_spec.rb": 42.11635737200049,10158 "spec/services/merge_requests/close_service_spec.rb": 37.86037475000012,10159 "spec/services/deployments/create_for_job_service_spec.rb": 34.88400068499959,10160 "spec/routing/routing_spec.rb": 18.8430149729993,10161 "spec/services/merge_requests/approval_service_spec.rb": 31.805262154000047,10162 "spec/services/members/invite_service_spec.rb": 28.11474524300047,10163 "spec/models/concerns/awardable_spec.rb": 27.712831056999676,10164 "spec/lib/gitlab/import_export/fast_hash_serializer_spec.rb": 23.09722020299978,10165 "spec/helpers/groups_helper_spec.rb": 13.573319131000062,10166 "spec/lib/gitlab/diff/file_collection/merge_request_diff_batch_spec.rb": 23.203999565999766,10167 "spec/models/packages/debian/file_metadatum_spec.rb": 9.994798331999846,10168 "spec/models/instance_configuration_spec.rb": 19.069415730999935,10169 "spec/rubocop/cop/gitlab/mark_used_feature_flags_spec.rb": 4.650226701000065,10170 "spec/models/packages/debian/group_distribution_spec.rb": 6.108720240999901,10171 "spec/lib/expand_variables_spec.rb": 3.5654442299992297,10172 "spec/scripts/trigger-build_spec.rb": 3.5713856100001067,10173 "spec/helpers/auto_devops_helper_spec.rb": 12.88086902500072,10174 "spec/services/error_tracking/issue_update_service_spec.rb": 17.0077439100005,10175 "spec/services/issues/zoom_link_service_spec.rb": 12.5282618250003,10176 "spec/lib/gitlab/ci/config/entry/retry_spec.rb": 4.427050356000109,10177 "spec/lib/gitlab/legacy_github_import/pull_request_formatter_spec.rb": 8.092774650999672,10178 "spec/services/users/build_service_spec.rb": 5.412742196000181,10179 "spec/lib/gitlab/redis/repository_cache_spec.rb": 3.042125732000386,10180 "spec/services/suggestions/create_service_spec.rb": 13.5151832749998,10181 "spec/lib/gitlab/cache/ci/project_pipeline_status_spec.rb": 10.591204115000437,10182 "spec/lib/gitlab/database/load_balancing/service_discovery_spec.rb": 5.738240396000037,10183 "spec/services/ci/pipeline_artifacts/destroy_all_expired_service_spec.rb": 13.22189598299974,10184 "spec/models/packages/conan/file_metadatum_spec.rb": 10.835309770999629,10185 "spec/lib/gitlab/ci/pipeline/seed/stage_spec.rb": 12.50488133699946,10186 "spec/lib/feature/definition_spec.rb": 3.4136412489997383,10187 "spec/services/work_items/create_and_link_service_spec.rb": 8.652310235000186,10188 "spec/policies/design_management/design_policy_spec.rb": 5.1391725229996155,10189 "spec/services/clusters/agents/authorizations/ci_access/refresh_service_spec.rb": 9.92769658600082,10190 "spec/routing/git_http_routing_spec.rb": 2.873300071999438,10191 "spec/lib/gitlab/visibility_level_spec.rb": 2.165095666000525,10192 "spec/lib/gitlab/gitaly_client/ref_service_spec.rb": 2.62348129899965,10193 "spec/lib/gitlab/redis/shared_state_spec.rb": 2.4333739690000584,10194 "spec/services/work_items/create_from_task_service_spec.rb": 7.822436116000063,10195 "spec/lib/gitlab/ci/status/external/common_spec.rb": 9.513392351999755,10196 "spec/views/layouts/nav/sidebar/_admin.html.haml_spec.rb": 3.8728626899992378,10197 "spec/models/x509_certificate_spec.rb": 4.307535183999789,10198 "spec/lib/gitlab/github_import/importer/issue_event_importer_spec.rb": 7.643026898000244,10199 "spec/services/files/delete_service_spec.rb": 7.07916366399968,10200 "spec/lib/gitlab/sidekiq_middleware/skip_jobs_spec.rb": 1.521692587999496,10201 "spec/lib/gitlab/usage/metrics/instrumentations/dormant_user_period_setting_metric_spec.rb": 8.148445240000001,10202 "spec/models/concerns/ci/maskable_spec.rb": 1.9145541430007142,10203 "spec/lib/gitlab/sidekiq_middleware/client_metrics_spec.rb": 1.4115619259991945,10204 "spec/finders/security/license_compliance_jobs_finder_spec.rb": 5.21993118500086,10205 "spec/lib/gitlab_settings/options_spec.rb": 1.4173271360004946,10206 "spec/models/clusters/providers/aws_spec.rb": 2.6693013329995665,10207 "spec/lib/gitlab/template/issue_template_spec.rb": 6.519074018000538,10208 "spec/helpers/namespaces_helper_spec.rb": 6.02946817100019,10209 "spec/lib/bitbucket_server/representation/pull_request_spec.rb": 1.0483913010002652,10210 "spec/lib/sidebars/projects/menus/analytics_menu_spec.rb": 3.4971877779998977,10211 "spec/lib/gitlab/conflict/file_collection_spec.rb": 5.313452278000113,10212 "spec/services/lfs/unlock_file_service_spec.rb": 5.138438760000099,10213 "spec/lib/sbom/package_url/encoder_spec.rb": 1.4184674369998902,10214 "spec/services/markup/rendering_service_spec.rb": 3.969666867000342,10215 "spec/workers/pipeline_process_worker_spec.rb": 4.630623822999951,10216 "spec/lib/gitlab/database/count/tablesample_count_strategy_spec.rb": 4.078583689999505,10217 "spec/lib/gitlab/gitaly_client/object_pool_service_spec.rb": 5.086727642999904,10218 "spec/services/projects/group_links/create_service_spec.rb": 2.926547396999922,10219 "spec/lib/system_check/simple_executor_spec.rb": 0.9461059280001791,10220 "spec/serializers/discussion_entity_spec.rb": 4.709696077999979,10221 "spec/services/resource_events/change_labels_service_spec.rb": 2.3631655439994574,10222 "spec/models/ci/pipeline_variable_spec.rb": 3.1544948210002985,10223 "spec/lib/gitlab/rack_attack_spec.rb": 0.8679348820005544,10224 "spec/workers/background_migration_worker_spec.rb": 0.9647171460001118,10225 "spec/helpers/branches_helper_spec.rb": 2.117602029000409,10226 "spec/lib/gitlab/repository_hash_cache_spec.rb": 1.1396821750004165,10227 "spec/validators/color_validator_spec.rb": 0.6802057960003367,10228 "spec/helpers/routing/pseudonymization_helper_spec.rb": 1.5622793960001218,10229 "spec/services/packages/terraform_module/create_package_service_spec.rb": 1.791049151000152,10230 "spec/components/pajamas/banner_component_spec.rb": 0.8516891340004804,10231 "spec/lib/gitlab/chat/responder/slack_spec.rb": 3.739568971999688,10232 "spec/lib/gitlab/slash_commands/presenters/issue_move_spec.rb": 4.398871008999777,10233 "spec/services/groups/deploy_tokens/create_service_spec.rb": 2.465493386000162,10234 "spec/helpers/sessions_helper_spec.rb": 0.9380950979993941,10235 "spec/finders/merge_request/metrics_finder_spec.rb": 1.8556637470001078,10236 "spec/workers/environments/auto_stop_worker_spec.rb": 3.5309644859999025,10237 "spec/lib/gitlab/database/migrations/version_spec.rb": 0.7105027130000963,10238 "spec/lib/gitlab/background_task_spec.rb": 1.1979401510006937,10239 "spec/graphql/types/work_items/widget_interface_spec.rb": 0.6919268350002312,10240 "spec/lib/sidebars/user_profile/menus/groups_menu_spec.rb": 1.0331128410007295,10241 "spec/lib/unnested_in_filters/rewriter_spec.rb": 0.7516297399997711,10242 "spec/rubocop/migration_helpers_spec.rb": 0.8022215070004677,10243 "spec/tooling/danger/feature_flag_spec.rb": 0.7587365399995178,10244 "spec/lib/gitlab/import_export/snippets_repo_restorer_spec.rb": 3.6983666449996235,10245 "spec/services/projects/branches_by_mode_service_spec.rb": 1.8340494080002827,10246 "spec/lib/gitlab/slug/environment_spec.rb": 0.7258670419996633,10247 "spec/services/projects/move_lfs_objects_projects_service_spec.rb": 2.998149741999441,10248 "spec/workers/remove_unreferenced_lfs_objects_worker_spec.rb": 3.0418179779999264,10249 "spec/tooling/lib/tooling/mappings/js_to_system_specs_mappings_spec.rb": 0.7176612720004414,10250 "spec/lib/sidebars/projects/menus/merge_requests_menu_spec.rb": 1.686074047999682,10251 "spec/helpers/environment_helper_spec.rb": 2.1575316270000258,10252 "spec/lib/gitlab/auth/result_spec.rb": 0.6438944869996703,10253 "spec/models/concerns/batch_nullify_dependent_associations_spec.rb": 2.507809263999661,10254 "spec/workers/container_registry/delete_container_repository_worker_spec.rb": 2.3260462959997312,10255 "spec/lib/gitlab/issuables_count_for_state_spec.rb": 1.1542597629995726,10256 "spec/lib/gitlab/etag_caching/router/rails_spec.rb": 0.8130070670003988,10257 "spec/workers/gitlab/jira_import/stage/import_labels_worker_spec.rb": 2.400527800999953,10258 "spec/lib/gitlab/search_context/controller_concern_spec.rb": 1.740403163999872,10259 "spec/models/concerns/bulk_insertable_associations_spec.rb": 0.9336378680000053,10260 "spec/lib/gitlab/ci/parsers/security/secret_detection_spec.rb": 2.0501545850002003,10261 "spec/models/preloaders/project_root_ancestor_preloader_spec.rb": 1.8652395570006775,10262 "spec/workers/packages/helm/extraction_worker_spec.rb": 1.1883977510005934,10263 "spec/policies/deploy_token_policy_spec.rb": 2.880717279000237,10264 "spec/lib/gitlab/checks/project_created_spec.rb": 0.8399969639995106,10265 "spec/models/ci/build_trace_spec.rb": 0.85122006399979,10266 "spec/lib/gitlab/quick_actions/timeline_text_and_date_time_separator_spec.rb": 0.5115716460004478,10267 "spec/models/concerns/has_environment_scope_spec.rb": 1.6414545210000142,10268 "spec/lib/gitlab/database/postgres_constraint_spec.rb": 0.9159919689991511,10269 "spec/lib/gitlab/ci/pipeline/chain/sequence_spec.rb": 1.1850255609997475,10270 "spec/lib/gitlab/ci/config/entry/kubernetes_spec.rb": 0.42736109199995553,10271 "spec/lib/error_tracking/sentry_client/api_urls_spec.rb": 0.7249672019997888,10272 "spec/presenters/project_clusterable_presenter_spec.rb": 0.8195355460002247,10273 "spec/lib/gitlab/git/user_spec.rb": 0.5993520700003501,10274 "spec/finders/packages/helm/packages_finder_spec.rb": 1.178561142000035,10275 "spec/lib/gitlab/search/query_spec.rb": 0.49888072599969746,10276 "spec/lib/api/entities/merge_request_changes_spec.rb": 1.501237170999957,10277 "spec/lib/atlassian/jira_issue_key_extractor_spec.rb": 0.36287744600031147,10278 "spec/policies/resource_milestone_event_policy_spec.rb": 1.7838247919999048,10279 "spec/rubocop/cop/performance/ar_count_each_spec.rb": 0.38058083500072826,10280 "spec/workers/gitlab/github_import/stage/import_issues_and_diff_notes_worker_spec.rb": 1.793075692000457,10281 "spec/views/projects/issues/show.html.haml_spec.rb": 2.0958252810005433,10282 "spec/rubocop/cop/code_reuse/presenter_spec.rb": 0.4802459379998254,10283 "spec/finders/packages/npm/packages_for_user_finder_spec.rb": 1.771186862999457,10284 "spec/lib/gitlab/internal_events/event_definitions_spec.rb": 0.48301791900030366,10285 "spec/lib/gitlab/ci/build/artifacts/adapters/raw_stream_spec.rb": 0.3012409100001605,10286 "spec/lib/gitlab/database/load_balancing/service_discovery/sampler_spec.rb": 0.46542183899964584,10287 "spec/lib/gitlab/data_builder/alert_spec.rb": 0.5721958720005205,10288 "spec/lib/gitlab/auth/saml/auth_hash_spec.rb": 0.4706697179999537,10289 "spec/tooling/danger/saas_feature_spec.rb": 0.6485407879999912,10290 "spec/models/subscription_spec.rb": 1.2541365679999217,10291 "spec/workers/invalid_gpg_signature_update_worker_spec.rb": 2.058129173999987,10292 "spec/helpers/bizible_helper_spec.rb": 0.4280446020002273,10293 "spec/models/ai/service_access_token_spec.rb": 0.46920216899980005,10294 "spec/models/integrations/chat_message/wiki_page_message_spec.rb": 0.5717374330006351,10295 "spec/lib/gitlab/email/handler_spec.rb": 0.7089362730002904,10296 "spec/workers/gitlab/bitbucket_import/stage/import_pull_requests_worker_spec.rb": 1.2129285390001314,10297 "spec/serializers/member_serializer_spec.rb": 1.7392313549999017,10298 "spec/services/ci/compare_codequality_reports_service_spec.rb": 1.719181786000263,10299 "spec/lib/gitlab/ci/config/external/mapper/matcher_spec.rb": 0.2838342320001175,10300 "spec/services/projects/enable_deploy_key_service_spec.rb": 1.7576879540001755,10301 "spec/lib/gitlab/request_forgery_protection_spec.rb": 0.4673216389992376,10302 "spec/lib/gitlab/github_import/representation/pull_requests/review_requests_spec.rb": 0.42398218200014526,10303 "spec/lib/gitlab/diff/formatters/text_formatter_spec.rb": 0.5010696370000005,10304 "spec/serializers/ci/downloadable_artifact_entity_spec.rb": 1.6508390600001803,10305 "spec/services/ci/abort_pipelines_service_spec.rb": 1.1475536240004658,10306 "spec/lib/sidebars/admin/panel_spec.rb": 0.4015926040001432,10307 "spec/lib/gitlab/import_export/wiki_repo_saver_spec.rb": 1.4779666220001673,10308 "spec/graphql/resolvers/projects/fork_targets_resolver_spec.rb": 1.5595050559995798,10309 "spec/services/boards/visits/create_service_spec.rb": 0.9055372900002112,10310 "spec/lib/gitlab/ci/build/rules/rule/clause/if_spec.rb": 0.38754230399990774,10311 "spec/lib/gitlab/seeder_spec.rb": 1.0563248399994336,10312 "spec/lib/gitlab/usage_data_counters_spec.rb": 0.3466460379995624,10313 "spec/workers/database/monitor_locked_tables_worker_spec.rb": 0.4354097109999202,10314 "spec/lib/api/validations/validators/git_sha_spec.rb": 0.3123854890000075,10315 "spec/workers/mail_scheduler/issue_due_worker_spec.rb": 1.2667860459996518,10316 "spec/tooling/danger/sidekiq_queues_spec.rb": 0.48139191799964465,10317 "spec/graphql/types/repository_type_spec.rb": 0.5009603770004105,10318 "spec/lib/gitlab/github_import/page_counter_spec.rb": 0.3368643180001527,10319 "spec/graphql/types/clusters/agent_token_type_spec.rb": 0.22643796499960445,10320 "spec/helpers/projects/pipeline_helper_spec.rb": 1.225890829000491,10321 "spec/lib/gitlab/ci/variables/builder/release_spec.rb": 1.0786273089997849,10322 "spec/rubocop/cop/api/ensure_string_detail_spec.rb": 0.4141954819997409,10323 "spec/lib/gitlab/import_export/attribute_configuration_spec.rb": 1.1191107160002502,10324 "spec/models/integrations/chat_message/issue_message_spec.rb": 0.47662528900036705,10325 "spec/support_specs/stub_member_access_level_spec.rb": 0.5232401260000188,10326 "spec/models/users/group_callout_spec.rb": 0.5491440329997204,10327 "spec/finders/database/batched_background_migrations_finder_spec.rb": 0.2479791040004784,10328 "spec/lib/product_analytics/event_params_spec.rb": 0.25249833300040336,10329 "spec/lib/gitlab/sql/except_spec.rb": 0.40067200399971625,10330 "spec/serializers/codequality_degradation_entity_spec.rb": 0.25537019399962446,10331 "spec/graphql/types/issue_sort_enum_spec.rb": 0.2240386249995936,10332 "spec/services/packages/ml_model/create_package_file_service_spec.rb": 0.9369347880001442,10333 "spec/lib/gitlab/bitbucket_server_import/importers/lfs_objects_importer_spec.rb": 0.6013451099997837,10334 "spec/serializers/import/manifest_provider_repo_entity_spec.rb": 0.6407358469996325,10335 "spec/services/clusters/agents/create_activity_event_service_spec.rb": 0.7344247620003443,10336 "spec/graphql/types/packages/helm/maintainer_type_spec.rb": 0.19277311699988786,10337 "spec/models/projects/import_export/relation_export_upload_spec.rb": 0.49463109699991037,10338 "spec/lib/gitlab/database/type/color_spec.rb": 0.41863624199959304,10339 "spec/lib/gitlab/usage/metrics/instrumentations/count_boards_metric_spec.rb": 0.5711231429995678,10340 "spec/services/concerns/merge_requests/assigns_merge_params_spec.rb": 0.4057018630001039,10341 "spec/lib/gitlab/usage/metrics/instrumentations/count_project_snippets_metric_spec.rb": 0.7790862390002076,10342 "spec/lib/gitlab/instrumentation/rate_limiting_gates_spec.rb": 0.26328054199984763,10343 "spec/lib/gitlab/global_id/deprecations_spec.rb": 0.2917441310000868,10344 "spec/lib/gitlab/ci/status/skipped_spec.rb": 0.31628110900055617,10345 "spec/lib/gitlab/memory/upload_and_cleanup_reports_spec.rb": 0.30123921999984304,10346 "spec/lib/api/entities/branch_spec.rb": 0.7749955589997626,10347 "spec/lib/gitlab/ci/config/entry/product/variables_spec.rb": 0.2976680910005598,10348 "spec/graphql/types/kas/agent_metadata_type_spec.rb": 0.22596898499978124,10349 "spec/helpers/explore_helper_spec.rb": 0.38311074400007783,10350 "spec/graphql/resolvers/commit_pipelines_resolver_spec.rb": 0.7592478200003825,10351 "spec/lib/gitlab/ci/config/external/mapper/normalizer_spec.rb": 0.16366985900003783,10352 "spec/graphql/resolvers/ci/runner_platforms_resolver_spec.rb": 0.16559664899978088,10353 "spec/serializers/impersonation_access_token_serializer_spec.rb": 0.525564155000211,10354 "spec/helpers/calendar_helper_spec.rb": 0.47201707899967005,10355 "spec/lib/gitlab/database/health_status/logger_spec.rb": 0.2286899850005284,10356 "spec/graphql/types/commit_signatures/gpg_signature_type_spec.rb": 0.2667137720000028,10357 "spec/serializers/group_access_token_entity_spec.rb": 0.5913664509998853,10358 "spec/views/profiles/notifications/show.html.haml_spec.rb": 0.6447904469996502,10359 "spec/lib/gitlab/sidekiq_middleware/pause_control_spec.rb": 0.24210070400022232,10360 "spec/workers/gitlab/github_import/pull_requests/import_review_worker_spec.rb": 0.28500934099974984,10361 "spec/views/help/instance_configuration.html.haml_spec.rb": 0.3949134039994533,10362 "spec/workers/gitlab/github_import/stage/import_protected_branches_worker_spec.rb": 0.45333763000053295,10363 "spec/lib/system_check/app/gitlab_cable_config_exists_check_spec.rb": 0.20411040599992702,10364 "spec/serializers/group_deploy_key_entity_spec.rb": 0.5218052259997421,10365 "spec/lib/gitlab/external_authorization/logger_spec.rb": 0.257836932999453,10366 "spec/lib/api/github/entities_spec.rb": 0.4208562819994768,10367 "spec/lib/gitlab/database/pg_depend_spec.rb": 0.38418602399997326,10368 "spec/lib/gitlab/database/load_balancing/logger_spec.rb": 0.263776563000647,10369 "spec/workers/members_destroyer/unassign_issuables_worker_spec.rb": 0.37410494499999913,10370 "spec/lib/api/entities/snippets/repository_storage_move_spec.rb": 0.3275309179998658,10371 "spec/lib/banzai/filter/markdown_engines/common_mark_spec.rb": 0.21705744599967147,10372 "spec/lib/gitlab/grape_logging/loggers/perf_logger_spec.rb": 0.21519943600014813,10373 "spec/views/pwa/manifest.json.erb_spec.rb": 0.3020638299994971,10374 "spec/lib/sidebars/projects/super_sidebar_menus/code_menu_spec.rb": 0.20959642700017866,10375 "spec/rubocop/cop/sidekiq_options_queue_spec.rb": 0.23238876499999606,10376 "spec/lib/sidebars/groups/super_sidebar_menus/build_menu_spec.rb": 0.2066359670006932,10377 "spec/graphql/types/alert_management/domain_filter_enum_spec.rb": 0.20976307699947938,10378 "spec/lib/gitlab/merge_requests/mergeability/redis_interface_spec.rb": 0.2131448560003264,10379 "spec/lib/api/entities/changelog_spec.rb": 0.2371558750000986,10380 "spec/lib/mattermost/client_spec.rb": 0.22875719500007108,10381 "spec/helpers/subscribable_banner_helper_spec.rb": 0.18011675799971272,10382 "spec/graphql/resolvers/audit_events/audit_event_definitions_resolver_spec.rb": 0.26647274200058746,10383 "spec/workers/onboarding/user_added_worker_spec.rb": 0.266931752000346,10384 "spec/lib/gitlab/graphql/query_analyzers/ast/logger_analyzer_spec.rb": 0.1828994879997481,10385 "spec/graphql/types/permission_types/project_spec.rb": 0.22931416499977786,10386 "spec/lib/gitlab/ci/config/entry/includes_spec.rb": 0.17714207800054282,10387 "spec/models/synthetic_note_spec.rb": 0.18481238700042013,10388 "spec/lib/gitlab/github_import/importer/issue_and_label_links_importer_spec.rb": 0.17523418800010404,10389 "spec/graphql/types/dependency_proxy/blob_type_spec.rb": 0.17500393799946323,10390 "spec/graphql/types/limited_countable_connection_type_spec.rb": 0.17615676900004473,10391 "spec/helpers/export_helper_spec.rb": 0.172661988000072610393Knapsack global time execution for tests: 28m 30s10394Pending: (Failures listed here are expected and do not affect your suite's status)10395 1) Gitlab::GitAccess#check_push_access! has the correct permissions for admin_without_admin_modes10396 # All admins are allowed to perform actions https://gitlab.com/gitlab-org/gitlab/-/issues/29650910397 # ./spec/lib/gitlab/git_access_spec.rb:85210398 2) Gitlab::GitAccess#check_push_access! when developers are allowed to push into the exact protected branch has the correct permissions for admin_without_admin_modes10399 # All admins are allowed to perform actions https://gitlab.com/gitlab-org/gitlab/-/issues/29650910400 # ./spec/lib/gitlab/git_access_spec.rb:85210401 3) Gitlab::GitAccess#check_push_access! when developers are allowed to merge into the exact protected branch when a merge request exists for the given source/target branch when the merge request is in progress has the correct permissions for admin_without_admin_modes10402 # All admins are allowed to perform actions https://gitlab.com/gitlab-org/gitlab/-/issues/29650910403 # ./spec/lib/gitlab/git_access_spec.rb:85210404 4) Gitlab::GitAccess#check_push_access! when developers are allowed to merge into the exact protected branch when a merge request exists for the given source/target branch when the merge request is not in progress has the correct permissions for admin_without_admin_modes10405 # All admins are allowed to perform actions https://gitlab.com/gitlab-org/gitlab/-/issues/29650910406 # ./spec/lib/gitlab/git_access_spec.rb:85210407 5) Gitlab::GitAccess#check_push_access! when developers are allowed to merge into the exact protected branch when a merge request exists for the given source/target branch when a merge request does not exist for the given source/target branch has the correct permissions for admin_without_admin_modes10408 # All admins are allowed to perform actions https://gitlab.com/gitlab-org/gitlab/-/issues/29650910409 # ./spec/lib/gitlab/git_access_spec.rb:85210410 6) Gitlab::GitAccess#check_push_access! when developers are allowed to push and merge into the exact protected branch has the correct permissions for admin_without_admin_modes10411 # All admins are allowed to perform actions https://gitlab.com/gitlab-org/gitlab/-/issues/29650910412 # ./spec/lib/gitlab/git_access_spec.rb:85210413 7) Gitlab::GitAccess#check_push_access! when no one is allowed to push to the feature protected branch has the correct permissions for admin_without_admin_modes10414 # All admins are allowed to perform actions https://gitlab.com/gitlab-org/gitlab/-/issues/29650910415 # ./spec/lib/gitlab/git_access_spec.rb:85210416 8) Gitlab::GitAccess#check_push_access! has the correct permissions for admin_without_admin_modes10417 # All admins are allowed to perform actions https://gitlab.com/gitlab-org/gitlab/-/issues/29650910418 # ./spec/lib/gitlab/git_access_spec.rb:85210419 9) Gitlab::GitAccess#check_push_access! when developers are allowed to push into the wildcard protected branch has the correct permissions for admin_without_admin_modes10420 # All admins are allowed to perform actions https://gitlab.com/gitlab-org/gitlab/-/issues/29650910421 # ./spec/lib/gitlab/git_access_spec.rb:85210422 10) Gitlab::GitAccess#check_push_access! when developers are allowed to merge into the wildcard protected branch when a merge request exists for the given source/target branch when the merge request is in progress has the correct permissions for admin_without_admin_modes10423 # All admins are allowed to perform actions https://gitlab.com/gitlab-org/gitlab/-/issues/29650910424 # ./spec/lib/gitlab/git_access_spec.rb:85210425 11) Gitlab::GitAccess#check_push_access! when developers are allowed to merge into the wildcard protected branch when a merge request exists for the given source/target branch when the merge request is not in progress has the correct permissions for admin_without_admin_modes10426 # All admins are allowed to perform actions https://gitlab.com/gitlab-org/gitlab/-/issues/29650910427 # ./spec/lib/gitlab/git_access_spec.rb:85210428 12) Gitlab::GitAccess#check_push_access! when developers are allowed to merge into the wildcard protected branch when a merge request exists for the given source/target branch when a merge request does not exist for the given source/target branch has the correct permissions for admin_without_admin_modes10429 # All admins are allowed to perform actions https://gitlab.com/gitlab-org/gitlab/-/issues/29650910430 # ./spec/lib/gitlab/git_access_spec.rb:85210431 13) Gitlab::GitAccess#check_push_access! when developers are allowed to push and merge into the wildcard protected branch has the correct permissions for admin_without_admin_modes10432 # All admins are allowed to perform actions https://gitlab.com/gitlab-org/gitlab/-/issues/29650910433 # ./spec/lib/gitlab/git_access_spec.rb:85210434 14) Gitlab::GitAccess#check_push_access! when no one is allowed to push to the feat* protected branch has the correct permissions for admin_without_admin_modes10435 # All admins are allowed to perform actions https://gitlab.com/gitlab-org/gitlab/-/issues/29650910436 # ./spec/lib/gitlab/git_access_spec.rb:85210437 15) Gitlab::Database::QueryAnalyzers::PreventSetOperatorMismatch::SelectStmt with lateral join 10438 # Not yet implemented10439 # ./spec/lib/gitlab/database/query_analyzers/prevent_set_operator_mismatch/select_stmt_spec.rb:34010440 16) Database::MonitorLockedTablesWorker#perform when running in decomposed database when the feature flag is disabled skips executing the job10441 # Skipping because ci is shared or doesn't not exist10442 # ./spec/workers/database/monitor_locked_tables_worker_spec.rb:3110443 17) Database::MonitorLockedTablesWorker#perform when running in decomposed database when the feature flag is enabled calls TablesLocker with dry_run enabled10444 # Skipping because ci is shared or doesn't not exist10445 # ./spec/workers/database/monitor_locked_tables_worker_spec.rb:4310446 18) Database::MonitorLockedTablesWorker#perform when running in decomposed database when the feature flag is enabled reports the tables that need to be locked on both databases main and ci10447 # Skipping because ci is shared or doesn't not exist10448 # ./spec/workers/database/monitor_locked_tables_worker_spec.rb:5010449 19) Database::MonitorLockedTablesWorker#perform when running in decomposed database when the feature flag is enabled with automatically locking the unlocked tables when there are no tables to be locked does not call the Database::LockTablesWorker10450 # Skipping because ci is shared or doesn't not exist10451 # ./spec/workers/database/monitor_locked_tables_worker_spec.rb:8710452 20) Database::MonitorLockedTablesWorker#perform when running in decomposed database when the feature flag is enabled with automatically locking the unlocked tables when there are tables to be locked when feature flag lock_tables_in_monitoring is enabled locks the tables that need to be locked10453 # Skipping because ci is shared or doesn't not exist10454 # ./spec/workers/database/monitor_locked_tables_worker_spec.rb:10810455 21) Database::MonitorLockedTablesWorker#perform when running in decomposed database when the feature flag is enabled with automatically locking the unlocked tables when there are tables to be locked when feature flag lock_tables_in_monitoring is disabled does not lock the tables that need to be locked10456 # Skipping because ci is shared or doesn't not exist10457 # ./spec/workers/database/monitor_locked_tables_worker_spec.rb:12110458 22) RuboCop::Cop::API::EnsureStringDetail when in_api? == true when detail field uses a constant does not add an offense10459 # No reason given10460 Failure/Error:10461 expect_no_offenses(<<~CODE)10462 class SomeAPI10463 resource :projects do10464 DESCRIPTION = 'A string'10466 desc 'Some API thing related to a project' do10467 detail DESCRIPTION10468 end10469 end10470 end10471 expected: "class SomeAPI\n resource :projects do\n DESCRIPTION = 'A string'\n\n desc 'Some API thing related to a project' do\n detail DESCRIPTION\n end\n end\nend\n"10472 got: "class SomeAPI\n resource :projects do\n DESCRIPTION = 'A string'\n\n desc 'Some API thing rel... ^^^^^^^^^^^^^^^^^^ Only String objects are permitted in API detail field.\n end\n end\nend\n"10473 (compared using ==)10474 Diff:10475 @@ -4,6 +4,7 @@10477 desc 'Some API thing related to a project' do10478 detail DESCRIPTION10479 + ^^^^^^^^^^^^^^^^^^ Only String objects are permitted in API detail field.10480 end10481 end10482 end10483 # ./spec/rubocop/cop/api/ensure_string_detail_spec.rb:61:in `block (4 levels) in <top (required)>'10484 # ./spec/spec_helper.rb:440:in `block (3 levels) in <top (required)>'10485 # ./spec/support/sidekiq_middleware.rb:18:in `with_sidekiq_server_middleware'10486 # ./spec/spec_helper.rb:431:in `block (2 levels) in <top (required)>'10487 # ./spec/spec_helper.rb:427:in `block (3 levels) in <top (required)>'10488 # ./lib/gitlab/application_context.rb:66:in `with_raw_context'10489 # ./spec/spec_helper.rb:427:in `block (2 levels) in <top (required)>'10490 # ./spec/spec_helper.rb:267:in `block (2 levels) in <top (required)>'10491 # ./spec/support/system_exit_detected.rb:7:in `block (2 levels) in <top (required)>'10492 # ./spec/support/fast_quarantine.rb:22:in `block (2 levels) in <top (required)>'10493 # ./spec/support/database/prevent_cross_joins.rb:106:in `block (3 levels) in <top (required)>'10494 # ./spec/support/database/prevent_cross_joins.rb:60:in `with_cross_joins_prevented'10495 # ./spec/support/database/prevent_cross_joins.rb:106:in `block (2 levels) in <top (required)>'10496Finished in 29 minutes 50 seconds (files took 55.09 seconds to load)104974630 examples, 0 failures, 22 pending10498Randomized with seed 2283210499[TEST PROF INFO] Time spent in factories: 12:40.471 (42.27% of total time)10500RSpec exited with 0.10501No examples to retry, congrats!10503Running after script...10504$ echo -e "\e[0Ksection_start:`date +%s`:report_results_section[collapsed=true]\r\e[0KReport results"10508$ tooling/bin/push_job_metrics || true10509[job-metrics] Pushing job metrics file for the CI/CD job.10510[job-metrics] Pushed 4 CI job metric entries to InfluxDB.10512Not uploading cache ruby-gems-debian-bullseye-ruby-3.0-16 due to policy10514Uploading artifacts...10515auto_explain/: found 3 matching artifact files and directories 10516coverage/: found 5 matching artifact files and directories 10517crystalball/: found 2 matching artifact files and directories 10518deprecations/: found 5 matching artifact files and directories 10519knapsack/: found 4 matching artifact files and directories 10520rspec/: found 16 matching artifact files and directories 10521WARNING: tmp/capybara/: no matching files. Ensure that the artifact path is relative to the working directory (/builds/gitlab-org/gitlab) 10522log/*.log: found 18 matching artifact files and directories 10523WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/5336650992/artifacts?artifact_format=zip&artifact_type=archive&expire_in=31d new-url=https://gitlab.com10524WARNING: Retrying... context=artifacts-uploader error=request redirected10525Uploading artifacts as "archive" to coordinator... 201 Created id=5336650992 responseStatus=201 Created token=64_H_zyY10526Uploading artifacts...10527rspec/rspec-*.xml: found 1 matching artifact files and directories 10528WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/5336650992/artifacts?artifact_format=gzip&artifact_type=junit&expire_in=31d new-url=https://gitlab.com10529WARNING: Retrying... context=artifacts-uploader error=request redirected10530Uploading artifacts as "junit" to coordinator... 201 Created id=5336650992 responseStatus=201 Created token=64_H_zyY10532Job succeeded