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

Vladimir Shushlin
1 when CI_JOB_JWT generation fails2 CI_JOB_JWT is not included3 CI_JOB_JWT is not included4 variables ordering5 when variables hierarchy is stubbed6 returns variables in order depending on resource hierarchy7 when build has environment and user-provided variables8 matches explicit variables ordering9 CI_ENVIRONMENT_ACTION10 behaves like defaults value11 value matches start12 when options is set13 when options is empty14 behaves like defaults value15 value matches start16 when options is nil17 behaves like defaults value18 value matches start19 when options environment is specified20 behaves like defaults value21 value matches start22 when options environment action specified23 matches the specified action24 when the build has ID tokens25 includes the tokens and excludes the predefined JWT variables26 when build has user27 is expected to include {:key => "GITLAB_USER_NAME", :value => "Sidney Jones1", :public => true, :masked => false}28 when build belongs to a pipeline for merge request29 returns values based on source ref30 when build has an environment31 when no URL was set32 does not have CI_ENVIRONMENT_URL33 behaves like containing environment variables34 is expected to include {:key => "CI_ENVIRONMENT_TIER", :value => "production", :public => true, :masked => false}35 when environment is created dynamically36 behaves like containing environment variables37 is expected to include {:key => "CI_ENVIRONMENT_URL", :value => "http://staging.example.com/$CI_JOB_NAME", :public => true, :masked => false}38 when an URL was set39 when the URL was set from the job40 behaves like containing environment variables41 is expected to include {:key => "CI_ENVIRONMENT_URL", :value => "http://host/test", :public => true, :masked => false}42 when variables are used in the URL, it does not expand43 puts $CI_ENVIRONMENT_URL in the last so all other variables are available to be used when runners are trying to expand it44 behaves like containing environment variables45 is expected to include {:key => "CI_ENVIRONMENT_URL", :value => "http://$CI_PROJECT_NAME-$CI_ENVIRONMENT_SLUG", :public => true, :masked => false}46 when the URL was not set from the job, but environment47 behaves like containing environment variables48 is expected to include {:key => "CI_ENVIRONMENT_URL", :value => "http://host/test", :public => true, :masked => false}49 when environment_tier is updated in options50 uses tier from options51 when project has an environment specific variable52 behaves like containing environment variables53 is expected to include {:key => "CI_ENVIRONMENT_URL", :value => "http://prd.example.com/$CI_JOB_NAME", :public => true, :masked => false}54 when environment scope does not match build environment55 is expected not to include {:key => "MY_STAGING_ONLY_VARIABLE", :value => "environment_specific_variable", :public => false, :masked => false}56 when environment scope matches build environment57 is expected to include {:key => "MY_STAGING_ONLY_VARIABLE", :value => "environment_specific_variable", :public => false, :masked => false}58 when build started manually59 is expected to include {:key => "CI_JOB_MANUAL", :value => "true", :public => true, :masked => false}60 when job variable is defined61 is expected to include {:key => "first", :value => "first", :public => false, :masked => false}62 when build is for branch63 is expected to include {:key => "CI_COMMIT_BRANCH", :value => "master", :public => true, :masked => false}64 when build is for tag65 is expected to include {:key => "CI_COMMIT_TAG_MESSAGE", :value => "Release", :public => true, :masked => false}66 when CI variable is defined67 is expected to include {:key => "SECRET_KEY", :value => "secret_value", :public => false, :masked => false}68 when protected variable is defined69 when the branch is protected70 is expected to include {:key => "PROTECTED_KEY", :value => "protected_value", :public => false, :masked => false}71 when the tag is protected72 is expected to include {:key => "PROTECTED_KEY", :value => "protected_value", :public => false, :masked => false}73 when the ref is not protected74 is expected not to include {:key => "PROTECTED_KEY", :value => "protected_value", :public => false, :masked => false}75 when group CI variable is defined76 is expected to include {:key => "SECRET_KEY", :value => "secret_value", :public => false, :masked => false}77 when group protected variable is defined78 when the branch is protected79 is expected to include {:key => "PROTECTED_KEY", :value => "protected_value", :public => false, :masked => false}80 when the tag is protected81 is expected to include {:key => "PROTECTED_KEY", :value => "protected_value", :public => false, :masked => false}82 when the ref is not protected83 is expected not to include {:key => "PROTECTED_KEY", :value => "protected_value", :public => false, :masked => false}84 when build is for triggers85 is expected to include {:key => "CI_PIPELINE_TRIGGERED", :value => "true", :public => true, :masked => false}86 when pipeline has a variable87 is expected to include {:key => "VARIABLE_1", :value => "VARIABLE_VALUE", :public => false, :masked => false}88 when a job was triggered by a pipeline schedule89 is expected to include {:key => "SCHEDULE_VARIABLE_KEY", :value => "VARIABLE_VALUE", :public => false, :masked => false}90 when container registry is enabled91 and is disabled for project92 is expected to include {:key => "CI_REGISTRY", :value => "registry.example.com", :public => true, :masked => false}93 is expected not to include {:key => "CI_REGISTRY_IMAGE", :value => "registry.example.com/group1/project-2", :public => true, :masked => false}94 and is enabled for project95 is expected to include {:key => "CI_REGISTRY", :value => "registry.example.com", :public => true, :masked => false}96 is expected to include {:key => "CI_REGISTRY_IMAGE", :value => "registry.example.com/group1/project-2", :public => true, :masked => false}97 and is private for project98 is expected to include {:key => "CI_REGISTRY", :value => "registry.example.com", :public => true, :masked => false}99 is expected to include {:key => "CI_REGISTRY_IMAGE", :value => "registry.example.com/group1/project-2", :public => true, :masked => false}100 when runner is assigned to build101 is expected to include {:key => "CI_RUNNER_ID", :value => "10", :public => true, :masked => false}102 is expected to include {:key => "CI_RUNNER_DESCRIPTION", :value => "description", :public => true, :masked => false}103 is expected to include {:key => "CI_RUNNER_TAGS", :value => "docker, linux", :public => true, :masked => false}104 when build is for a deployment105 is expected to include {:key => "KUBERNETES_TOKEN", :value => "TOKEN", :public => false, :masked => false}106 when project has default CI config path107 is expected to include {:key => "CI_CONFIG_PATH", :value => ".gitlab-ci.yml", :public => true, :masked => false}108 when project has custom CI config path109 is expected to include {:key => "CI_CONFIG_PATH", :value => "custom", :public => true, :masked => false}110 when pipeline variable overrides build variable111 overrides YAML variable using a pipeline variable112 when build is parallelized113 when parallel is a number114 behaves like parallelized jobs config115 includes CI_NODE_INDEX116 includes correct CI_NODE_TOTAL117 when parallel is hash with the total key118 behaves like parallelized jobs config119 includes CI_NODE_INDEX120 includes correct CI_NODE_TOTAL121 when parallel is nil122 behaves like parallelized jobs config123 includes CI_NODE_INDEX124 includes correct CI_NODE_TOTAL125 when build has not been persisted yet126 returns static predefined variables127 for deploy tokens128 when gitlab-deploy-token exists for project129 includes deploy token variables130 when gitlab-deploy-token does not exist for project131 does not include deploy token variables132 when gitlab-deploy-token exists for group133 includes deploy token variables134 for harbor integration135 when harbor_integration exists136 includes harbor variables137 when harbor_integration does not exist138 does not include harbor variables139 for the apple_app_store integration140 when an Apple App Store integration exists141 when app_store_protected_refs is true142 when a build is protected143 is expected to include {:key => "APP_STORE_CONNECT_API_KEY_IS_KEY_CONTENT_BASE64", :value => "true", :masked => false, :public => false}144 when a build is not protected145 is expected to be nil146 when app_store_protected_refs is false147 when a build is protected148 is expected to include {:key => "APP_STORE_CONNECT_API_KEY_IS_KEY_CONTENT_BASE64", :value => "true", :masked => false, :public => false}149 when a build is not protected150 is expected to include {:key => "APP_STORE_CONNECT_API_KEY_IS_KEY_CONTENT_BASE64", :value => "true", :masked => false, :public => false}151 when an Apple App Store integration does not exist152 when a build is protected153 is expected to be nil154 when a build is not protected155 is expected to be nil156 for the google_play integration157 when the google_play integration exists158 when google_play_protected_refs is true159 when a build is protected160 is expected to include {:key => "SUPPLY_PACKAGE_NAME", :value => "com.gitlab.foo.bar", :masked => false, :public => false}161 when a build is not protected162 is expected to be nil163 when google_play_protected_refs is false164 when a build is protected165 is expected to include {:key => "SUPPLY_PACKAGE_NAME", :value => "com.gitlab.foo.bar", :masked => false, :public => false}166 when a build is not protected167 is expected to include {:key => "SUPPLY_PACKAGE_NAME", :value => "com.gitlab.foo.bar", :masked => false, :public => false}168 when the google_play integration does not exist169 when a build is protected170 is expected to be nil171 when a build is not protected172 is expected to be nil173 when build has dependency which has dotenv variable174 is expected to include {:key => "VARIABLE_1", :value => "VARIABLE_VALUE", :public => false, :masked => false}175 when ID tokens are defined on the build176 includes the ID token variables177 when a NoSigningKeyError is raised178 does not include the ID token variables179 when a RSAError is raised180 does not include the ID token variables181 when ID tokens are defined with variables182 includes the ID token variables with expanded aud values183 when ID tokens are defined with variables of an environment184 includes the ID token variables with expanded aud values185 #scoped_variables186 records a prometheus metric187 delegates to the variable builders188 behaves like calculates scoped_variables189 when build has not been persisted yet190 does not persist the build191 returns static predefined variables192 does not return prohibited variables193 with dependency variables194 inherits dependent variables195 #simple_variables_without_dependencies196 does not load dependencies197 #any_unmet_prerequisites?198 build has prerequisites199 is expected to be truthy200 build does not have prerequisites201 is expected to be falsey202 #yaml_variables203 persist data in build metadata204 does not persist data in build205 behaves like having consistent representation206 allows to access using symbols207 #dependency_variables208 when using dependencies209 inherits only dependent variables210 when using needs211 inherits only needs with artifacts variables212 state transition: any => [:preparing]213 queues BuildPrepareWorker214 state transition: any => [:pending]215 queues BuildQueueWorker216 executes hooks217 assigns the token218 state transition: pending: :running219 for pipeline ref existence220 ensures pipeline ref creation221 ensures that it is not run in database transaction222 when runner timeout overrides project timeout223 behaves like saves data on transition224 saves timeout225 saves timeout_source226 when Ci::BuildMetadata#update_timeout_state fails update227 doesn't save timeout228 doesn't save timeout_source229 when runner timeout doesn't override project timeout230 behaves like saves data on transition231 saves timeout232 saves timeout_source233 when Ci::BuildMetadata#update_timeout_state fails update234 doesn't save timeout235 doesn't save timeout_source236 #has_valid_build_dependencies?237 when "dependencies" keyword is not defined238 is expected to have valid build dependencies239 when "dependencies" keyword is empty240 is expected to have valid build dependencies241 when "dependencies" keyword is specified242 behaves like validation is active243 when depended job has not been completed yet244 is expected to have valid build dependencies245 when artifacts of depended job has been expired246 when pipeline is not locked247 is expected not to have valid build dependencies248 when pipeline is locked249 is expected to have valid build dependencies250 when artifacts of depended job has been erased251 is expected not to have valid build dependencies252 state transition when build fails253 when build is configured to be retried254 retries build and assigns the same user to it255 does not try to create a todo256 when retry service raises Gitlab::Access::AccessDeniedError exception257 handles raised exception258 logs the error259 fails the job260 when build is not configured to be retried261 does not retry build262 does not count retries when not necessary263 creates a todo async264 when associated deployment failed to update its status265 can drop the build266 .matches_tag_ids267 when have different tags268 does not match a build269 when have a subset of tags270 does match a build271 when build does not have tags272 does match a build273 when does not have a subset of tags274 does not match a build275 .matches_tags276 when does have tags277 does match a build278 when does not have tags279 does not match a build280 #pages_generator?281 name: "foo", enabled: false, result: false282 is expected to eq false283 name: "pages", enabled: false, result: false284 is expected to eq false285 name: "pages:preview", enabled: true, result: false286 is expected to eq false287 name: "pages", enabled: true, result: true288 is expected to eq true289 pages deployments290 when pages are enabled291 and job succeeds292 calls pages worker293 and job fails294 does not call pages worker295 when pages are disabled296 and job succeeds297 does not call pages worker298 #has_terminal?299 returns true if the build is running and it has a runner_session_url300 returns false301 when runner_session_url is empty302 unless the build is running303 is expected to be falsey304 #collect_test_reports!305 is expected to eq 0306 when build has a test report307 when there is a JUnit test report from rspec test suite308 parses blobs and add the results to the test suite309 when there is a JUnit test report from java ant test suite310 parses blobs and add the results to the test suite311 when there is a corrupted JUnit test report312 returns no test data and includes a suite_error message313 #collect_accessibility_reports!314 is expected to eq {}315 when build has an accessibility report316 when there is an accessibility report with errors317 parses blobs and add the results to the accessibility report318 when there is an accessibility report without errors319 parses blobs and add the results to the accessibility report320 when there is an accessibility report with an invalid url321 parses blobs and add the results to the accessibility report322 #collect_codequality_reports!323 is expected to eq {}324 when build has a codequality report325 when there is a codequality report326 parses blobs and add the results to the codequality report327 when there is an codequality report without errors328 parses blobs and add the results to the codequality report329 #collect_terraform_reports!330 returns an empty hash331 when build has a terraform report332 when there is a valid tfplan.json333 parses blobs and add the results to the terraform report334 when there is an invalid tfplan.json335 adds invalid plan report336 #each_report337 yields job artifact blob that matches the type338 #report_artifacts339 when the build has reports340 returns the artifacts with reports341 #artifacts_metadata_entry342 when using local storage343 for existing file344 does exist345 for non-existing file346 does not exist347 when using remote storage348 for existing file349 does exist350 for non-existing file351 does not exist352 #publishes_artifacts_reports?353 when artifacts reports are defined354 is expected to be truthy355 when artifacts reports missing defined356 is expected to be falsey357 when options are missing358 is expected to be falsey359 #runner_required_feature_names360 when artifacts reports are defined361 is expected to include :upload_multiple_artifacts362 when artifacts exclude is defined363 is expected to include :artifacts_exclude364 #supported_runner?365 when `upload_multiple_artifacts` feature is required by build366 when runner provides given feature367 is expected to be truthy368 when runner does not provide given feature369 is expected to be falsey370 when `refspecs` feature is required by build371 when runner provides given feature372 is expected to be truthy373 when runner does not provide given feature374 is expected to be falsey375 when `multi_build_steps` feature is required by build376 when runner provides given feature377 is expected to be truthy378 when runner does not provide given feature379 is expected to be falsey380 when `return_exit_code` feature is required by build381 when runner provides given feature382 is expected to be truthy383 when runner does not provide given feature384 is expected to be falsey385 when the runner does not provide all of the required features386 requires `upload_multiple_artifacts` too387 #degenerated?388 when build is degenerated389 is expected to be degenerated390 when build is valid391 is expected not to be degenerated392 and becomes degenerated393 is expected to be degenerated394 degenerate!395 drops metadata396 #archived?397 when build is degenerated398 is expected to be archived399 for old build400 when archive_builds_in is set401 is expected to be archived402 when archive_builds_in is not set403 is expected not to be archived404 #read_metadata_attribute405 when build and metadata options is set406 prefers build options407 when only metadata options is set408 returns metadata options409 when none is set410 returns default value411 #write_metadata_attribute412 when data in build is already set413 does set metadata options414 does reset build options415 #invalid_dependencies416 when pipeline is locked417 returns invalid dependencies when expired418 when pipeline is not locked419 returns no invalid dependencies when expired420 #execute_hooks421 with project hooks422 calls project.execute_hooks(build_data, :job_hooks)423 with blocked users424 does not call project.execute_hooks425 without project hooks426 does not call project.execute_hooks427 with project services428 executes services429 without relevant project services430 does not execute services431 #environment_auto_stop_in432 when build option has environment auto_stop_in433 is expected to eq "1 day"434 when build option does not have environment auto_stop_in435 is expected to be nil436 #degradation_threshold437 when threshold variable is defined438 is expected to eq 5439 when threshold variable is not defined440 is expected to be nil441 #run_on_status_commit442 runs provided hook after status commit443 does not run hooks when status has not changed444 #debug_mode?445 when CI_DEBUG_TRACE=true is in variables446 reflects instance variables447 reflects group variables448 reflects pipeline variables449 reflects project variables450 reflects job variables451 when in yaml variables452 reflects instance variables453 reflects group variables454 reflects pipeline variables455 reflects project variables456 reflects job variables457 when in yaml variables458 reflects instance variables459 reflects group variables460 reflects pipeline variables461 reflects project variables462 reflects job variables463 when in yaml variables464 when CI_DEBUG_TRACE is not in variables465 is expected to eq false466 when CI_DEBUG_SERVICES=true is in variables467 reflects instance variables468 reflects group variables469 reflects pipeline variables470 reflects project variables471 reflects job variables472 when in yaml variables473 reflects instance variables474 reflects group variables475 reflects pipeline variables476 reflects project variables477 reflects job variables478 when in yaml variables479 reflects instance variables480 reflects group variables481 reflects pipeline variables482 reflects project variables483 reflects job variables484 when in yaml variables485 when CI_DEBUG_SERVICES is not in variables486 is expected to eq false487 when metadata has debug_trace_enabled true488 is expected to eq true489 when metadata has debug_trace_enabled false490 is expected to eq false491 #drop_with_exit_code!492 when exit_codes are not defined493 behaves like drops the build without changing allow_failure494 does not change allow_failure495 drops the build496 when allow_failure_criteria is nil497 behaves like drops the build without changing allow_failure498 does not change allow_failure499 drops the build500 when exit_codes is nil501 behaves like drops the build without changing allow_failure502 does not change allow_failure503 drops the build504 when exit_codes do not match505 behaves like drops the build without changing allow_failure506 does not change allow_failure507 drops the build508 with matching exit codes509 changes allow_failure510 drops the build511 when exit_code is nil512 behaves like drops the build without changing allow_failure513 does not change allow_failure514 drops the build515 when build is configured to be retried516 when there is an MR attached to the pipeline and a failed job todo for that MR517 resolves the todo for the old failed build518 #exit_codes_defined?519 without allow_failure_criteria520 is expected to be falsey521 when exit_codes is nil522 is expected to be falsey523 when exit_codes is an empty array524 is expected to be falsey525 when exit_codes are defined526 is expected to be truthy527 .build_matchers528 when the pipeline is empty529 does not throw errors530 when the pipeline has builds531 is expected to eq 2532 groups build ids533 is expected to contain exactly [] and ["tag1", "tag2"]534 is expected to all be falsey535 when the builds are protected536 is expected to all be protected537 #build_matcher538 is expected to eq [1016]539 is expected to contain exactly "tag1" and "tag2"540 is expected to eq false541 is expected to eq #<Project id:1 group1/project-1>>542 #shared_runner_build?543 when build does not have a runner assigned544 is not a shared runner build545 when build has a project runner assigned546 is not a shared runner build547 when build has an instance runner assigned548 is a shared runner build549 .with_project_and_metadata550 does not join across databases551 .without_coverage552 returns builds without coverage values553 .with_coverage_regex554 returns builds with coverage regex values555 #ensure_trace_metadata!556 delegates to Ci::BuildTraceMetadata557 #doom!558 updates status and failure_reason559 logs a message560 with deployment561 updates the deployment status562 with queued builds563 drops associated pending build564 with running builds565 drops associated runtime metadata566 #runtime_runner_features567 cannot cancel gracefully568 can cancel gracefully569 behaves like it has loose foreign keys570 has at least one loose foreign key definition571 has the deletion trigger present572 records record deletions573 cleans up record deletions574 behaves like cleanup by a loose foreign key575 cleans up (delete or nullify) the model576 #clone577 when given new job variables578 when the cloned build has an action579 applies the new job variables580 when the cloned build does not have an action581 applies the old job variables582 when not given new job variables583 applies the old job variables584 #test_suite_name585 uses the group name for test suite name586 when build is part of parallel build587 uses the group name for test suite name588 when build is part of matrix build589 uses the job name for the test suite590 #runtime_hooks591 returns an array of hook objects592 partitioning593 assigns partition_id to job variables successfully594 assigning token595 includes partition_id as a token prefix596 #remove_token!597 removes the token598 metadata partitioning599 creates the metadata record and assigns its partition600 secrets management id_tokens usage data601 when ID tokens are defined602 on create603 tracks RedisHLL event with user_id604 tracks Snowplow event with RedisHLL context605 on update606 does not track RedisHLL event607 does not track Snowplow event608 when ID tokens are not defined609 on create610 does not track RedisHLL event611 does not track Snowplow event612 job artifact associations613 #job_artifacts_archive614 when job has an artifact of type archive615 is expected to eq #<Ci::JobArtifact project_id: 1, file_type: "archive", size: nil, created_at: "2023-10-20 08:30:17.12...nown", partition_id: 100, accessibility: "public", file_final_path: nil, verification_checksum: nil>616 when job has no artifact of type archive617 is expected to be nil618 #job_artifacts_metadata619 when job has an artifact of type metadata620 is expected to eq #<Ci::JobArtifact project_id: 1, file_type: "metadata", size: nil, created_at: "2023-10-20 08:30:17.2...nown", partition_id: 100, accessibility: "public", file_final_path: nil, verification_checksum: nil>621 when job has no artifact of type metadata622 is expected to be nil623 #job_artifacts_trace624 when job has an artifact of type trace625 is expected to eq #<Ci::JobArtifact project_id: 1, file_type: "trace", size: nil, created_at: "2023-10-20 08:30:17.3473...nown", partition_id: 100, accessibility: "public", file_final_path: nil, verification_checksum: nil>626 when job has no artifact of type trace627 is expected to be nil628 #job_artifacts_junit629 when job has an artifact of type junit630 is expected to eq #<Ci::JobArtifact project_id: 1, file_type: "junit", size: nil, created_at: "2023-10-20 08:30:17.4517...nown", partition_id: 100, accessibility: "public", file_final_path: nil, verification_checksum: nil>631 when job has no artifact of type junit632 is expected to be nil633 #job_artifacts_sast634 when job has an artifact of type sast635 is expected to eq #<Ci::JobArtifact project_id: 1, file_type: "sast", size: nil, created_at: "2023-10-20 08:30:17.55745...nown", partition_id: 100, accessibility: "public", file_final_path: nil, verification_checksum: nil>636 when job has no artifact of type sast637 is expected to be nil638 #job_artifacts_dependency_scanning639 when job has an artifact of type dependency_scanning640 is expected to eq #<Ci::JobArtifact project_id: 1, file_type: "dependency_scanning", size: nil, created_at: "2023-10-20...nown", partition_id: 100, accessibility: "public", file_final_path: nil, verification_checksum: nil>641 when job has no artifact of type dependency_scanning642 is expected to be nil643 #job_artifacts_container_scanning644 when job has an artifact of type container_scanning645 is expected to eq #<Ci::JobArtifact project_id: 1, file_type: "container_scanning", size: nil, created_at: "2023-10-20 ...nown", partition_id: 100, accessibility: "public", file_final_path: nil, verification_checksum: nil>646 when job has no artifact of type container_scanning647 is expected to be nil648 #job_artifacts_dast649 when job has an artifact of type dast650 is expected to eq #<Ci::JobArtifact project_id: 1, file_type: "dast", size: nil, created_at: "2023-10-20 08:30:17.85739...nown", partition_id: 100, accessibility: "public", file_final_path: nil, verification_checksum: nil>651 when job has no artifact of type dast652 is expected to be nil653 #job_artifacts_codequality654 when job has an artifact of type codequality655 is expected to eq #<Ci::JobArtifact project_id: 1, file_type: "codequality", size: nil, created_at: "2023-10-20 08:30:1...nown", partition_id: 100, accessibility: "public", file_final_path: nil, verification_checksum: nil>656 when job has no artifact of type codequality657 is expected to be nil658 #job_artifacts_license_scanning659 when job has an artifact of type license_scanning660 is expected to eq #<Ci::JobArtifact project_id: 1, file_type: "license_scanning", size: nil, created_at: "2023-10-20 08...nown", partition_id: 100, accessibility: "public", file_final_path: nil, verification_checksum: nil>661 when job has no artifact of type license_scanning662 is expected to be nil663 #job_artifacts_performance664 when job has an artifact of type performance665 is expected to eq #<Ci::JobArtifact project_id: 1, file_type: "performance", size: nil, created_at: "2023-10-20 08:30:1...nown", partition_id: 100, accessibility: "public", file_final_path: nil, verification_checksum: nil>666 when job has no artifact of type performance667 is expected to be nil668 #job_artifacts_metrics669 when job has an artifact of type metrics670 is expected to eq #<Ci::JobArtifact project_id: 1, file_type: "metrics", size: nil, created_at: "2023-10-20 08:30:18.27...nown", partition_id: 100, accessibility: "public", file_final_path: nil, verification_checksum: nil>671 when job has no artifact of type metrics672 is expected to be nil673 #job_artifacts_metrics_referee674 when job has an artifact of type metrics_referee675 is expected to eq #<Ci::JobArtifact project_id: 1, file_type: "metrics_referee", size: nil, created_at: "2023-10-20 08:...nown", partition_id: 100, accessibility: "public", file_final_path: nil, verification_checksum: nil>676 when job has no artifact of type metrics_referee677 is expected to be nil678 #job_artifacts_network_referee679 when job has an artifact of type network_referee680 is expected to eq #<Ci::JobArtifact project_id: 1, file_type: "network_referee", size: nil, created_at: "2023-10-20 08:...nown", partition_id: 100, accessibility: "public", file_final_path: nil, verification_checksum: nil>681 when job has no artifact of type network_referee682 is expected to be nil683 #job_artifacts_lsif684 when job has an artifact of type lsif685 is expected to eq #<Ci::JobArtifact project_id: 1, file_type: "lsif", size: nil, created_at: "2023-10-20 08:30:18.57473...nown", partition_id: 100, accessibility: "public", file_final_path: nil, verification_checksum: nil>686 when job has no artifact of type lsif687 is expected to be nil688 #job_artifacts_dotenv689 when job has an artifact of type dotenv690 is expected to eq #<Ci::JobArtifact project_id: 1, file_type: "dotenv", size: nil, created_at: "2023-10-20 08:30:18.675...nown", partition_id: 100, accessibility: "public", file_final_path: nil, verification_checksum: nil>691 when job has no artifact of type dotenv692 is expected to be nil693 #job_artifacts_cobertura694 when job has an artifact of type cobertura695 is expected to eq #<Ci::JobArtifact project_id: 1, file_type: "cobertura", size: nil, created_at: "2023-10-20 08:30:18....nown", partition_id: 100, accessibility: "public", file_final_path: nil, verification_checksum: nil>696 when job has no artifact of type cobertura697 is expected to be nil698 #job_artifacts_terraform699 when job has an artifact of type terraform700 is expected to eq #<Ci::JobArtifact project_id: 1, file_type: "terraform", size: nil, created_at: "2023-10-20 08:30:18....nown", partition_id: 100, accessibility: "public", file_final_path: nil, verification_checksum: nil>701 when job has no artifact of type terraform702 is expected to be nil703 #job_artifacts_accessibility704 when job has an artifact of type accessibility705 is expected to eq #<Ci::JobArtifact project_id: 1, file_type: "accessibility", size: nil, created_at: "2023-10-20 08:30...nown", partition_id: 100, accessibility: "public", file_final_path: nil, verification_checksum: nil>706 when job has no artifact of type accessibility707 is expected to be nil708 #job_artifacts_cluster_applications709 when job has an artifact of type cluster_applications710 is expected to eq #<Ci::JobArtifact project_id: 1, file_type: "cluster_applications", size: nil, created_at: "2023-10-2...nown", partition_id: 100, accessibility: "public", file_final_path: nil, verification_checksum: nil>711 when job has no artifact of type cluster_applications712 is expected to be nil713 #job_artifacts_secret_detection714 when job has an artifact of type secret_detection715 is expected to eq #<Ci::JobArtifact project_id: 1, file_type: "secret_detection", size: nil, created_at: "2023-10-20 08...nown", partition_id: 100, accessibility: "public", file_final_path: nil, verification_checksum: nil>716 when job has no artifact of type secret_detection717 is expected to be nil718 #job_artifacts_requirements719 when job has an artifact of type requirements720 is expected to eq #<Ci::JobArtifact project_id: 1, file_type: "requirements", size: nil, created_at: "2023-10-20 08:30:...nown", partition_id: 100, accessibility: "public", file_final_path: nil, verification_checksum: nil>721 when job has no artifact of type requirements722 is expected to be nil723 #job_artifacts_coverage_fuzzing724 when job has an artifact of type coverage_fuzzing725 is expected to eq #<Ci::JobArtifact project_id: 1, file_type: "coverage_fuzzing", size: nil, created_at: "2023-10-20 08...nown", partition_id: 100, accessibility: "public", file_final_path: nil, verification_checksum: nil>726 when job has no artifact of type coverage_fuzzing727 is expected to be nil728 #job_artifacts_browser_performance729 when job has an artifact of type browser_performance730 is expected to eq #<Ci::JobArtifact project_id: 1, file_type: "browser_performance", size: nil, created_at: "2023-10-20...nown", partition_id: 100, accessibility: "public", file_final_path: nil, verification_checksum: nil>731 when job has no artifact of type browser_performance732 is expected to be nil733 #job_artifacts_load_performance734 when job has an artifact of type load_performance735 is expected to eq #<Ci::JobArtifact project_id: 1, file_type: "load_performance", size: nil, created_at: "2023-10-20 08...nown", partition_id: 100, accessibility: "public", file_final_path: nil, verification_checksum: nil>736 when job has no artifact of type load_performance737 is expected to be nil738 #job_artifacts_api_fuzzing739 when job has an artifact of type api_fuzzing740 is expected to eq #<Ci::JobArtifact project_id: 1, file_type: "api_fuzzing", size: nil, created_at: "2023-10-20 08:30:1...nown", partition_id: 100, accessibility: "public", file_final_path: nil, verification_checksum: nil>741 when job has no artifact of type api_fuzzing742 is expected to be nil743 #job_artifacts_cluster_image_scanning744 when job has an artifact of type cluster_image_scanning745 is expected to eq #<Ci::JobArtifact project_id: 1, file_type: "cluster_image_scanning", size: nil, created_at: "2023-10...nown", partition_id: 100, accessibility: "public", file_final_path: nil, verification_checksum: nil>746 when job has no artifact of type cluster_image_scanning747 is expected to be nil748 #job_artifacts_cyclonedx749 when job has an artifact of type cyclonedx750 is expected to eq #<Ci::JobArtifact project_id: 1, file_type: "cyclonedx", size: nil, created_at: "2023-10-20 08:30:19....nown", partition_id: 100, accessibility: "public", file_final_path: nil, verification_checksum: nil>751 when job has no artifact of type cyclonedx752 is expected to be nil753 #job_artifacts_requirements_v2754 when job has an artifact of type requirements_v2755 is expected to eq #<Ci::JobArtifact project_id: 1, file_type: "requirements_v2", size: nil, created_at: "2023-10-20 08:...nown", partition_id: 100, accessibility: "public", file_final_path: nil, verification_checksum: nil>756 when job has no artifact of type requirements_v2757 is expected to be nil758 #job_artifacts_annotations759 when job has an artifact of type annotations760 is expected to eq #<Ci::JobArtifact project_id: 1, file_type: "annotations", size: nil, created_at: "2023-10-20 08:30:2...nown", partition_id: 100, accessibility: "public", file_final_path: nil, verification_checksum: nil>761 when job has no artifact of type annotations762 is expected to be nil763 token format for builds transiting into pending764 when build is initialized without a token and transits to pending765 generates a token766 when build is initialized with a token and transits to pending767 does not change the existing token768Gitlab::Asciidoc769 without project770 converts the input using Asciidoctor and default options771 with asciidoc_opts772 merges the options with default ones773 with requested path774 ignores {docname} when not available775 sets {docname} for root776 sets {docname} for just a filename777 sets {docname} for a directory778 sets {docname} for a complete path779 XSS780 does not convert dangerous link with extra attribute into HTML781 does not convert dangerous link with unsafe scheme into HTML782 does not convert dangerous image with onerror into HTML783asciidoctor: WARNING: <stdin>: line 1: unterminated listing block784 does not convert dangerous fenced code with inline script into HTML785 does not allow locked attributes to be overridden786 images787 does lazy load and link image788 does not automatically link image if link is explicitly defined789 with admonition790 preserves classes791 with passthrough792 removes non heading ids793 removes non footnote def ids794 removes non footnote ref ids795 with footnotes796 preserves ids and links797 with section anchors798 preserves ids and links799 with xrefs800 preserves ids801 with checklist802 preserves classes803 with marks804 preserves classes805 with fenced block806 highlights syntax807 with listing block808 highlights syntax809 with stem block810 does not apply syntax highlighting811 external links812 adds the `rel` attribute to the link813 LaTex code814 adds class js-render-math to the output815 outfilesuffix816 defaults to adoc817 with mermaid diagrams818 adds class js-render-mermaid to the output819 applies subs in diagram block820 with Kroki enabled821 converts a graphviz diagram to image822 does not convert a blockdiag diagram to image823 does not allow kroki-plantuml-include to be overridden824 does not allow kroki-server-url to be overridden825 with Kroki and BlockDiag (additional format) enabled826 converts a blockdiag diagram to image827 with project828 include directive829 cyclic imports830 completes successfully831 with path to non-existing file832 renders Unresolved directive placeholder833 with path to a binary file834 does not read the blob835 renders Unresolved directive placeholder836 with path to file in external storage837 does not read the blob838 renders Unresolved directive placeholder839 with a URI that returns 404840 renders Unresolved directive placeholder841 with path to a textual file842 when requested path is a file in the repo843 the file is specified by absolute path844 includes content of the file845 the file is specified by relative path846 includes content of the file847 the file is specified by relative path with leading ./848 includes content of the file849 the file is specified by relative path to a file up one directory850 includes content of the file851 the file is specified by relative path for a file up multiple directories852 includes content of the file853 without a commit (only ref)854 the file is specified by absolute path855 includes content of the file856 the file is specified by relative path857 includes content of the file858 the file is specified by relative path with leading ./859 includes content of the file860 the file is specified by relative path to a file up one directory861 includes content of the file862 the file is specified by relative path for a file up multiple directories863 includes content of the file864 when requested path is a directory in the repo865 the file is specified by absolute path866 includes content of the file867 the file is specified by relative path868 includes content of the file869 the file is specified by relative path with leading ./870 includes content of the file871 the file is specified by relative path to a file up one directory872 includes content of the file873 the file is specified by relative path for a file up multiple directories874 includes content of the file875 without a commit (only ref)876 the file is specified by absolute path877 includes content of the file878 the file is specified by relative path879 includes content of the file880 the file is specified by relative path with leading ./881 includes content of the file882 the file is specified by relative path to a file up one directory883 includes content of the file884 the file is specified by relative path for a file up multiple directories885 includes content of the file886 when repository is passed into the context887 when the file exists888 is expected to include "<p>Content from wiki</p>"889 when the file does not exist890 is expected to include "[ERROR: include::wiki_file.adoc[] - unresolved directive]"891 the effect of max-includes892 includes the content of all sources893 when the document includes more than MAX_INCLUDES894 includes only the content of the first 2 sources895 recursive includes with relative paths896 includes content of the included files recursively897Noteable898 #discussions899 includes discussions for diff notes, commit diff notes, commit notes, and regular notes900 #commenters901 when noteable is an issue902 behaves like commenters903 does not automatically include the noteable author904 with no user905 contains a distinct list of non-internal note authors906 with non project member907 contains a distinct list of non-internal note authors908 does not include a commenter from another noteable909 with reporter910 contains a distinct list of non-internal note authors911 with noteable author912 contains a distinct list of non-internal note authors913 when noteable is a merge request914 behaves like commenters915 does not automatically include the noteable author916 with no user917 contains a distinct list of non-internal note authors918 with non project member919 contains a distinct list of non-internal note authors920 does not include a commenter from another noteable921 #discussion_ids_relation922 returns ordered discussion_ids923 #discussion_root_note_ids924 returns ordered discussion_ids and synthetic note ids925 filters by comments only926 filters by system notes only927 #grouped_diff_discussions928 includes active discussions929 does not include outdated discussions930 groups the discussions by line code931 discussion status932 #discussions_resolvable?933 when all discussions are unresolvable934 returns false935 when some discussions are unresolvable and some discussions are resolvable936 returns true937 when all discussions are resolvable938 returns true939 #discussions_resolved?940 when discussions are not resolvable941 returns false942 when discussions are resolvable943 when all resolvable discussions are resolved944 returns true945 when some resolvable discussions are not resolved946 returns false947 #discussions_to_be_resolved948 includes only discussions that need to be resolved949 #discussions_can_be_resolved_by?950 all discussions can be resolved by the user951 allows a user to resolve the discussions952 one discussion cannot be resolved by the user953 allows a user to resolve the discussions954 .replyable_types955 exposes the replyable types956 .resolvable_types957 exposes the resolvable types958 .email_creatable_types959 exposes the email creatable types960 #capped_notes_count961 notes number < 10962 the number of notes is returned963 notes number > 10964 10 is returned965 #has_any_diff_note_positions?966 returns true when it has diff note positions967 returns false when it has notes but no diff note positions968 returns false when it has no notes969 #creatable_note_email_address970 incoming email enabled971 returns the address to create a note972 returns nil for unsupported types973 incoming email disabled974 returns nil975 #supports_resolvable_notes976 when noteable is an abuse report977 returns true978 #supports_replying_to_individual_notes979 when noteable is an abuse report980 returns true981Ci::CreatePipelineService982 #execute983 skips creating pipeline for refs without .gitlab-ci.yml984 performance985 behaves like pipelines are created without N+1 SQL queries986 avoids N+1 queries987 valid params988 responds with success989 creates a pipeline990 increments the prometheus counter991 records pipeline size in a prometheus histogram992 tracks included template usage993 when merge requests already exist for this source branch994 when the head pipeline sha equals merge request sha995 updates head pipeline of each merge request996 auto-cancel enabled997 does not cancel HEAD pipeline998 auto cancel pending non-HEAD pipelines999 cancels running outdated pipelines1000 cancel created outdated pipelines1001 does not cancel pipelines from the other branches1002 when the interruptible attribute is1003 not defined1004 is cancelable1005 set to true1006 is cancelable1007 set to false1008 is not cancelable1009 interruptible builds1010 properly configures interruptible status1011 when only interruptible builds are running1012 when build marked explicitly by interruptible is running1013 cancels running outdated pipelines1014 when build that is not marked as interruptible is running1015 cancels running outdated pipelines1016 when an uninterruptible build is running1017 does not cancel running outdated pipelines1018 when an build is waiting on an interruptible scheduled task1019 cancels running outdated pipelines1020 when a uninterruptible build has finished1021 does not cancel running outdated pipelines1022 auto-cancel disabled1023 does not auto cancel created non-HEAD pipelines1024 skip tag if there is no build for it1025 creates commit if there is appropriate job1026 creates commit if there is no appropriate job but deploy job has right ref setting1027 config evaluation1028 when config is in a file in repository1029 pull it from the repository1030 when config is from Auto-DevOps1031 pull it from Auto-DevOps1032 when config is not found1033 responds with error message1034 when an unexpected error is raised1035 saves error in pipeline1036 logs error1037 when yaml is invalid1038 increments the error metric1039 behaves like a failed pipeline1040 creates failed pipeline1041 when receive git commit1042 behaves like a failed pipeline1043 creates failed pipeline1044 when config has ports1045 in the main image1046 behaves like a failed pipeline1047 creates failed pipeline1048 in the job image1049 behaves like a failed pipeline1050 creates failed pipeline1051 in the service1052 behaves like a failed pipeline1053 creates failed pipeline1054 when an unexpected error is raised1055 saves error in pipeline1056 logs error1057 when commit contains a [ci skip] directive1058 when the commit message is some message[ci skip]1059 behaves like skipping a pipeline1060 skips pipeline creation1061 when the commit message is some message[skip ci]1062 behaves like skipping a pipeline1063 skips pipeline creation1064 when the commit message is some message[CI SKIP]1065 behaves like skipping a pipeline1066 skips pipeline creation1067 when the commit message is some message[SKIP CI]1068 behaves like skipping a pipeline1069 skips pipeline creation1070 when the commit message is some message[ci_skip]1071 behaves like skipping a pipeline1072 skips pipeline creation1073 when the commit message is some message[skip_ci]1074 behaves like skipping a pipeline1075 skips pipeline creation1076 when the commit message is some message[ci-skip]1077 behaves like skipping a pipeline1078 skips pipeline creation1079 when the commit message is some message[skip-ci]1080 behaves like skipping a pipeline1081 skips pipeline creation1082 when commit message does not contain [ci skip] nor [skip ci]1083 behaves like creating a pipeline1084 does not skip pipeline creation1085 when commit message is nil1086 behaves like creating a pipeline1087 does not skip pipeline creation1088 when there is [ci skip] tag in commit message and yaml is invalid1089 behaves like skipping a pipeline1090 skips pipeline creation1091 when push options contain ci.skip1092 creates a pipline in the skipped state1093 when there are no jobs for this pipeline1094 does not create a new pipeline1095 #iid1096 rewinds iid1097 when the configuration includes ID tokens1098 creates variables for the ID tokens1099 with manual actions1100 does not create a new pipeline1101 when builds with auto-retries are configured1102 as an integer1103 correctly creates builds with auto-retry value configured1104 as hash1105 correctly creates builds with auto-retry value configured1106 with resource group1107 when resource group is defined1108 persists the association correctly1109 when resource group key includes predefined variables1110 interpolates the variables into the key correctly1111 when resource group is defined for review app deployment1112 persists the association correctly1113 initializes scoped variables only once for each build1114 with timeout1115 when builds with custom timeouts are configured1116 correctly creates builds with custom timeout value configured1117 with release1118 simple example1119 behaves like a successful release pipeline1120 is valid config1121 example with all release metadata1122 behaves like a successful release pipeline1123 is valid config1124 when ref is a protected branch1125 behaves like when ref is protected1126 when user is developer1127 does not create a pipeline1128 when user is maintainer1129 creates a protected pipeline1130 when trigger belongs to no one1131 does not create a pipeline1132 when trigger belongs to a developer1133 does not create a pipeline1134 when trigger belongs to a maintainer1135 creates a pipeline1136 when ref is a protected tag1137 behaves like when ref is protected1138 when user is developer1139 does not create a pipeline1140 when user is maintainer1141 creates a protected pipeline1142 when trigger belongs to no one1143 does not create a pipeline1144 when trigger belongs to a developer1145 does not create a pipeline1146 when trigger belongs to a maintainer1147 creates a pipeline1148 when pipeline is running for a tag1149 creates a tagged pipeline1150 when pipeline is running for a nonexistant-branch1151 does not create the pipeline1152 when there is a tag with that nonexistant-branch1153 does not create the pipeline1154 when pipeline is running for a branch with the name of both a branch and a tag1155 creates the pipeline for the branch1156 when pipeline is running for a tag with the name of both a branch and a tag1157 creates the pipeline for the tag1158 when pipeline is running for an ambiguous ref1159 does not create the pipeline1160 when pipeline variables are specified1161 with valid pipeline variables1162 creates a pipeline with specified variables1163 with duplicate pipeline variables1164 fails to create the pipeline1165 with more than one duplicate pipeline variable1166 fails to create the pipeline1167 Pipeline for external pull requests1168 when source is external pull request1169 when config has external_pull_requests keywords1170 when external pull request is specified1171 creates an external pull request pipeline1172 when ref is tag1173 does not create an extrnal pull request pipeline1174 when pull request is created from fork1175 does not create an external pull request pipeline (PENDING: Not yet implemented)1176 when there are no matched jobs1177 does not create a detached merge request pipeline1178 when external pull request is not specified1179 does not create an external pull request pipeline1180 when config does not have external_pull_requests keywords1181 when external pull request is specified1182 creates an external pull request pipeline1183 when external pull request is not specified1184 does not create an external pull request pipeline1185 Pipelines for merge requests1186 when source is merge request1187 when config has merge_requests keywords1188 when merge request is specified1189 creates a detached merge request pipeline1190 persists the specified source sha1191 does not persist target sha for detached merge request pipeline1192 schedules update for the head pipeline of the merge request1193 schedules a namespace onboarding create action worker1194 when target sha is specified1195 persists the target sha1196 when ref is tag1197 does not create a merge request pipeline1198 when merge request is created from a forked project1199 creates a legacy detached merge request pipeline in the forked project1200 when there are no matched jobs1201 does not create a detached merge request pipeline1202 when config does not have merge_requests keywords1203 when merge request is specified1204 does not create a detached merge request pipeline1205 when config uses regular expression for only keyword1206 when merge request is specified1207 does not create a detached merge request pipeline1208 when config uses variables for only keyword1209 when merge request is specified1210 does not create a detached merge request pipeline1211 when config has 'except: [tags]'1212 when merge request is specified1213 does not create a detached merge request pipeline1214 when source is web1215 when config has merge_requests keywords1216 creates a branch pipeline1217 when needs is used1218 when pipeline on master is created1219 creates a pipeline with build_a and test_a1220 bulk inserts all needs1221 when pipeline on feature is created1222 when save_on_errors is enabled1223 does create a pipeline as test_a depends on build_a1224 behaves like has errors1225 contains the expected errors1226 when save_on_errors is disabled1227 does not create a pipeline as test_a depends on build_a1228 behaves like has errors1229 contains the expected errors1230 when pipeline on v1.0.0 is created1231 does create a pipeline only with deploy1232 pipeline components1233 when there is no version with specified tag1234 does not create a pipeline1235 when there is a proper revision available1236 when component is valid1237 creates a pipeline using a pipeline component1238 when interpolation is invalid1239 does not create a pipeline1240 when there is a syntax error in the template1241 does not create a pipeline1242 pipeline components using include:with instead of include:inputs1243 when there is no version with specified tag1244 does not create a pipeline1245 when there is a proper revision available1246 when component is valid1247 creates a pipeline using a pipeline component1248 when inputs have a description1249 creates a pipeline1250 when interpolation is invalid1251 does not create a pipeline1252 when there is a syntax error in the template1253 does not create a pipeline1254Ci::PipelineSchedulePolicy1255 rules1256 rules for protected ref1257 for branch1258 with refs/heads/master1259 push_access_level: :no_one_can_push, merge_access_level: :no_one_can_merge, project_role: :owner, accessible: :be_disallowed1260 for create_pipeline_schedule1261 is expected to be disallowed :create_pipeline_schedule1262 for play_pipeline_schedule1263 is expected to be disallowed :play_pipeline_schedule1264 push_access_level: :no_one_can_push, merge_access_level: :no_one_can_merge, project_role: :maintainer, accessible: :be_disallowed1265 for create_pipeline_schedule1266 is expected to be disallowed :create_pipeline_schedule1267 for play_pipeline_schedule1268 is expected to be disallowed :play_pipeline_schedule1269 push_access_level: :no_one_can_push, merge_access_level: :no_one_can_merge, project_role: :developer, accessible: :be_disallowed1270 for create_pipeline_schedule1271 is expected to be disallowed :create_pipeline_schedule1272 for play_pipeline_schedule1273 is expected to be disallowed :play_pipeline_schedule1274 push_access_level: :no_one_can_push, merge_access_level: :no_one_can_merge, project_role: :reporter, accessible: :be_disallowed1275 for create_pipeline_schedule1276 is expected to be disallowed :create_pipeline_schedule1277 for play_pipeline_schedule1278 is expected to be disallowed :play_pipeline_schedule1279 push_access_level: :no_one_can_push, merge_access_level: :no_one_can_merge, project_role: :guest, accessible: :be_disallowed1280 for create_pipeline_schedule1281 is expected to be disallowed :create_pipeline_schedule1282 for play_pipeline_schedule1283 is expected to be disallowed :play_pipeline_schedule1284 push_access_level: :maintainers_can_push, merge_access_level: :no_one_can_merge, project_role: :owner, accessible: :be_allowed1285 for create_pipeline_schedule1286 is expected to be allowed :create_pipeline_schedule1287 for play_pipeline_schedule1288 is expected to be allowed :play_pipeline_schedule1289 push_access_level: :maintainers_can_push, merge_access_level: :no_one_can_merge, project_role: :maintainer, accessible: :be_allowed1290 for create_pipeline_schedule1291 is expected to be allowed :create_pipeline_schedule1292 for play_pipeline_schedule1293 is expected to be allowed :play_pipeline_schedule1294 push_access_level: :maintainers_can_push, merge_access_level: :no_one_can_merge, project_role: :developer, accessible: :be_disallowed1295 for create_pipeline_schedule1296 is expected to be disallowed :create_pipeline_schedule1297 for play_pipeline_schedule1298 is expected to be disallowed :play_pipeline_schedule1299 push_access_level: :maintainers_can_push, merge_access_level: :no_one_can_merge, project_role: :reporter, accessible: :be_disallowed1300 for create_pipeline_schedule1301 is expected to be disallowed :create_pipeline_schedule1302 for play_pipeline_schedule1303 is expected to be disallowed :play_pipeline_schedule1304 push_access_level: :maintainers_can_push, merge_access_level: :no_one_can_merge, project_role: :guest, accessible: :be_disallowed1305 for create_pipeline_schedule1306 is expected to be disallowed :create_pipeline_schedule1307 for play_pipeline_schedule1308 is expected to be disallowed :play_pipeline_schedule1309 push_access_level: :developers_can_push, merge_access_level: :no_one_can_merge, project_role: :owner, accessible: :be_allowed1310 for create_pipeline_schedule1311 is expected to be allowed :create_pipeline_schedule1312 for play_pipeline_schedule1313 is expected to be allowed :play_pipeline_schedule1314 push_access_level: :developers_can_push, merge_access_level: :no_one_can_merge, project_role: :maintainer, accessible: :be_allowed1315 for create_pipeline_schedule1316 is expected to be allowed :create_pipeline_schedule1317 for play_pipeline_schedule1318 is expected to be allowed :play_pipeline_schedule1319 push_access_level: :developers_can_push, merge_access_level: :no_one_can_merge, project_role: :developer, accessible: :be_allowed1320 for create_pipeline_schedule1321 is expected to be allowed :create_pipeline_schedule1322 for play_pipeline_schedule1323 is expected to be allowed :play_pipeline_schedule1324 push_access_level: :developers_can_push, merge_access_level: :no_one_can_merge, project_role: :reporter, accessible: :be_disallowed1325 for create_pipeline_schedule1326 is expected to be disallowed :create_pipeline_schedule1327 for play_pipeline_schedule1328 is expected to be disallowed :play_pipeline_schedule1329 push_access_level: :developers_can_push, merge_access_level: :no_one_can_merge, project_role: :guest, accessible: :be_disallowed1330 for create_pipeline_schedule1331 is expected to be disallowed :create_pipeline_schedule1332 for play_pipeline_schedule1333 is expected to be disallowed :play_pipeline_schedule1334 push_access_level: :no_one_can_push, merge_access_level: :maintainers_can_merge, project_role: :owner, accessible: :be_allowed1335 for create_pipeline_schedule1336 is expected to be allowed :create_pipeline_schedule1337 for play_pipeline_schedule1338 is expected to be allowed :play_pipeline_schedule1339 push_access_level: :no_one_can_push, merge_access_level: :maintainers_can_merge, project_role: :maintainer, accessible: :be_allowed1340 for create_pipeline_schedule1341 is expected to be allowed :create_pipeline_schedule1342 for play_pipeline_schedule1343 is expected to be allowed :play_pipeline_schedule1344 push_access_level: :no_one_can_push, merge_access_level: :maintainers_can_merge, project_role: :developer, accessible: :be_disallowed1345 for create_pipeline_schedule1346 is expected to be disallowed :create_pipeline_schedule1347 for play_pipeline_schedule1348 is expected to be disallowed :play_pipeline_schedule1349 push_access_level: :no_one_can_push, merge_access_level: :maintainers_can_merge, project_role: :reporter, accessible: :be_disallowed1350 for create_pipeline_schedule1351 is expected to be disallowed :create_pipeline_schedule1352 for play_pipeline_schedule1353 is expected to be disallowed :play_pipeline_schedule1354 push_access_level: :no_one_can_push, merge_access_level: :maintainers_can_merge, project_role: :guest, accessible: :be_disallowed1355 for create_pipeline_schedule1356 is expected to be disallowed :create_pipeline_schedule1357 for play_pipeline_schedule1358 is expected to be disallowed :play_pipeline_schedule1359 push_access_level: :maintainers_can_push, merge_access_level: :maintainers_can_merge, project_role: :owner, accessible: :be_allowed1360 for create_pipeline_schedule1361 is expected to be allowed :create_pipeline_schedule1362 for play_pipeline_schedule1363 is expected to be allowed :play_pipeline_schedule1364 push_access_level: :maintainers_can_push, merge_access_level: :maintainers_can_merge, project_role: :maintainer, accessible: :be_allowed1365 for create_pipeline_schedule1366 is expected to be allowed :create_pipeline_schedule1367 for play_pipeline_schedule1368 is expected to be allowed :play_pipeline_schedule1369 push_access_level: :maintainers_can_push, merge_access_level: :maintainers_can_merge, project_role: :developer, accessible: :be_disallowed1370 for create_pipeline_schedule1371 is expected to be disallowed :create_pipeline_schedule1372 for play_pipeline_schedule1373 is expected to be disallowed :play_pipeline_schedule1374 push_access_level: :maintainers_can_push, merge_access_level: :maintainers_can_merge, project_role: :reporter, accessible: :be_disallowed1375 for create_pipeline_schedule1376 is expected to be disallowed :create_pipeline_schedule1377 for play_pipeline_schedule1378 is expected to be disallowed :play_pipeline_schedule1379 push_access_level: :maintainers_can_push, merge_access_level: :maintainers_can_merge, project_role: :guest, accessible: :be_disallowed1380 for create_pipeline_schedule1381 is expected to be disallowed :create_pipeline_schedule1382 for play_pipeline_schedule1383 is expected to be disallowed :play_pipeline_schedule1384 push_access_level: :developers_can_push, merge_access_level: :maintainers_can_merge, project_role: :owner, accessible: :be_allowed1385 for create_pipeline_schedule1386 is expected to be allowed :create_pipeline_schedule1387 for play_pipeline_schedule1388 is expected to be allowed :play_pipeline_schedule1389 push_access_level: :developers_can_push, merge_access_level: :maintainers_can_merge, project_role: :maintainer, accessible: :be_allowed1390 for create_pipeline_schedule1391 is expected to be allowed :create_pipeline_schedule1392 for play_pipeline_schedule1393 is expected to be allowed :play_pipeline_schedule1394 push_access_level: :developers_can_push, merge_access_level: :maintainers_can_merge, project_role: :developer, accessible: :be_allowed1395 for create_pipeline_schedule1396 is expected to be allowed :create_pipeline_schedule1397 for play_pipeline_schedule1398 is expected to be allowed :play_pipeline_schedule1399 push_access_level: :developers_can_push, merge_access_level: :maintainers_can_merge, project_role: :reporter, accessible: :be_disallowed1400 for create_pipeline_schedule1401 is expected to be disallowed :create_pipeline_schedule1402 for play_pipeline_schedule1403 is expected to be disallowed :play_pipeline_schedule1404 push_access_level: :developers_can_push, merge_access_level: :maintainers_can_merge, project_role: :guest, accessible: :be_disallowed1405 for create_pipeline_schedule1406 is expected to be disallowed :create_pipeline_schedule1407 for play_pipeline_schedule1408 is expected to be disallowed :play_pipeline_schedule1409 push_access_level: :no_one_can_push, merge_access_level: :developers_can_merge, project_role: :owner, accessible: :be_allowed1410 for create_pipeline_schedule1411 is expected to be allowed :create_pipeline_schedule1412 for play_pipeline_schedule1413 is expected to be allowed :play_pipeline_schedule1414 push_access_level: :no_one_can_push, merge_access_level: :developers_can_merge, project_role: :maintainer, accessible: :be_allowed1415 for create_pipeline_schedule1416 is expected to be allowed :create_pipeline_schedule1417 for play_pipeline_schedule1418 is expected to be allowed :play_pipeline_schedule1419 push_access_level: :no_one_can_push, merge_access_level: :developers_can_merge, project_role: :developer, accessible: :be_allowed1420 for create_pipeline_schedule1421 is expected to be allowed :create_pipeline_schedule1422 for play_pipeline_schedule1423 is expected to be allowed :play_pipeline_schedule1424 push_access_level: :no_one_can_push, merge_access_level: :developers_can_merge, project_role: :reporter, accessible: :be_disallowed1425 for create_pipeline_schedule1426 is expected to be disallowed :create_pipeline_schedule1427 for play_pipeline_schedule1428 is expected to be disallowed :play_pipeline_schedule1429 push_access_level: :no_one_can_push, merge_access_level: :developers_can_merge, project_role: :guest, accessible: :be_disallowed1430 for create_pipeline_schedule1431 is expected to be disallowed :create_pipeline_schedule1432 for play_pipeline_schedule1433 is expected to be disallowed :play_pipeline_schedule1434 push_access_level: :maintainers_can_push, merge_access_level: :developers_can_merge, project_role: :owner, accessible: :be_allowed1435 for create_pipeline_schedule1436 is expected to be allowed :create_pipeline_schedule1437 for play_pipeline_schedule1438 is expected to be allowed :play_pipeline_schedule1439 push_access_level: :maintainers_can_push, merge_access_level: :developers_can_merge, project_role: :maintainer, accessible: :be_allowed1440 for create_pipeline_schedule1441 is expected to be allowed :create_pipeline_schedule1442 for play_pipeline_schedule1443 is expected to be allowed :play_pipeline_schedule1444 push_access_level: :maintainers_can_push, merge_access_level: :developers_can_merge, project_role: :developer, accessible: :be_allowed1445 for create_pipeline_schedule1446 is expected to be allowed :create_pipeline_schedule1447 for play_pipeline_schedule1448 is expected to be allowed :play_pipeline_schedule1449 push_access_level: :maintainers_can_push, merge_access_level: :developers_can_merge, project_role: :reporter, accessible: :be_disallowed1450 for create_pipeline_schedule1451 is expected to be disallowed :create_pipeline_schedule1452 for play_pipeline_schedule1453 is expected to be disallowed :play_pipeline_schedule1454 push_access_level: :maintainers_can_push, merge_access_level: :developers_can_merge, project_role: :guest, accessible: :be_disallowed1455 for create_pipeline_schedule1456 is expected to be disallowed :create_pipeline_schedule1457 for play_pipeline_schedule1458 is expected to be disallowed :play_pipeline_schedule1459 push_access_level: :developers_can_push, merge_access_level: :developers_can_merge, project_role: :owner, accessible: :be_allowed1460 for create_pipeline_schedule1461 is expected to be allowed :create_pipeline_schedule1462 for play_pipeline_schedule1463 is expected to be allowed :play_pipeline_schedule1464 push_access_level: :developers_can_push, merge_access_level: :developers_can_merge, project_role: :maintainer, accessible: :be_allowed1465 for create_pipeline_schedule1466 is expected to be allowed :create_pipeline_schedule1467 for play_pipeline_schedule1468 is expected to be allowed :play_pipeline_schedule1469 push_access_level: :developers_can_push, merge_access_level: :developers_can_merge, project_role: :developer, accessible: :be_allowed1470 for create_pipeline_schedule1471 is expected to be allowed :create_pipeline_schedule1472 for play_pipeline_schedule1473 is expected to be allowed :play_pipeline_schedule1474 push_access_level: :developers_can_push, merge_access_level: :developers_can_merge, project_role: :reporter, accessible: :be_disallowed1475 for create_pipeline_schedule1476 is expected to be disallowed :create_pipeline_schedule1477 for play_pipeline_schedule1478 is expected to be disallowed :play_pipeline_schedule1479 push_access_level: :developers_can_push, merge_access_level: :developers_can_merge, project_role: :guest, accessible: :be_disallowed1480 for create_pipeline_schedule1481 is expected to be disallowed :create_pipeline_schedule1482 for play_pipeline_schedule1483 is expected to be disallowed :play_pipeline_schedule1484 with master1485 push_access_level: :no_one_can_push, merge_access_level: :no_one_can_merge, project_role: :owner, accessible: :be_disallowed1486 for create_pipeline_schedule1487 is expected to be disallowed :create_pipeline_schedule1488 for play_pipeline_schedule1489 is expected to be disallowed :play_pipeline_schedule1490 push_access_level: :no_one_can_push, merge_access_level: :no_one_can_merge, project_role: :maintainer, accessible: :be_disallowed1491 for create_pipeline_schedule1492 is expected to be disallowed :create_pipeline_schedule1493 for play_pipeline_schedule1494 is expected to be disallowed :play_pipeline_schedule1495 push_access_level: :no_one_can_push, merge_access_level: :no_one_can_merge, project_role: :developer, accessible: :be_disallowed1496 for create_pipeline_schedule1497 is expected to be disallowed :create_pipeline_schedule1498 for play_pipeline_schedule1499 is expected to be disallowed :play_pipeline_schedule1500 push_access_level: :no_one_can_push, merge_access_level: :no_one_can_merge, project_role: :reporter, accessible: :be_disallowed1501 for create_pipeline_schedule1502 is expected to be disallowed :create_pipeline_schedule1503 for play_pipeline_schedule1504 is expected to be disallowed :play_pipeline_schedule1505 push_access_level: :no_one_can_push, merge_access_level: :no_one_can_merge, project_role: :guest, accessible: :be_disallowed1506 for create_pipeline_schedule1507 is expected to be disallowed :create_pipeline_schedule1508 for play_pipeline_schedule1509 is expected to be disallowed :play_pipeline_schedule1510 push_access_level: :maintainers_can_push, merge_access_level: :no_one_can_merge, project_role: :owner, accessible: :be_allowed1511 for create_pipeline_schedule1512 is expected to be allowed :create_pipeline_schedule1513 for play_pipeline_schedule1514 is expected to be allowed :play_pipeline_schedule1515 push_access_level: :maintainers_can_push, merge_access_level: :no_one_can_merge, project_role: :maintainer, accessible: :be_allowed1516 for create_pipeline_schedule1517 is expected to be allowed :create_pipeline_schedule1518 for play_pipeline_schedule1519 is expected to be allowed :play_pipeline_schedule1520 push_access_level: :maintainers_can_push, merge_access_level: :no_one_can_merge, project_role: :developer, accessible: :be_disallowed1521 for create_pipeline_schedule1522 is expected to be disallowed :create_pipeline_schedule1523 for play_pipeline_schedule1524 is expected to be disallowed :play_pipeline_schedule1525 push_access_level: :maintainers_can_push, merge_access_level: :no_one_can_merge, project_role: :reporter, accessible: :be_disallowed1526 for create_pipeline_schedule1527 is expected to be disallowed :create_pipeline_schedule1528 for play_pipeline_schedule1529 is expected to be disallowed :play_pipeline_schedule1530 push_access_level: :maintainers_can_push, merge_access_level: :no_one_can_merge, project_role: :guest, accessible: :be_disallowed1531 for create_pipeline_schedule1532 is expected to be disallowed :create_pipeline_schedule1533 for play_pipeline_schedule1534 is expected to be disallowed :play_pipeline_schedule1535 push_access_level: :developers_can_push, merge_access_level: :no_one_can_merge, project_role: :owner, accessible: :be_allowed1536 for create_pipeline_schedule1537 is expected to be allowed :create_pipeline_schedule1538 for play_pipeline_schedule1539 is expected to be allowed :play_pipeline_schedule1540 push_access_level: :developers_can_push, merge_access_level: :no_one_can_merge, project_role: :maintainer, accessible: :be_allowed1541 for create_pipeline_schedule1542 is expected to be allowed :create_pipeline_schedule1543 for play_pipeline_schedule1544 is expected to be allowed :play_pipeline_schedule1545 push_access_level: :developers_can_push, merge_access_level: :no_one_can_merge, project_role: :developer, accessible: :be_allowed1546 for create_pipeline_schedule1547 is expected to be allowed :create_pipeline_schedule1548 for play_pipeline_schedule1549 is expected to be allowed :play_pipeline_schedule1550 push_access_level: :developers_can_push, merge_access_level: :no_one_can_merge, project_role: :reporter, accessible: :be_disallowed1551 for create_pipeline_schedule1552 is expected to be disallowed :create_pipeline_schedule1553 for play_pipeline_schedule1554 is expected to be disallowed :play_pipeline_schedule1555 push_access_level: :developers_can_push, merge_access_level: :no_one_can_merge, project_role: :guest, accessible: :be_disallowed1556 for create_pipeline_schedule1557 is expected to be disallowed :create_pipeline_schedule1558 for play_pipeline_schedule1559 is expected to be disallowed :play_pipeline_schedule1560 push_access_level: :no_one_can_push, merge_access_level: :maintainers_can_merge, project_role: :owner, accessible: :be_allowed1561 for create_pipeline_schedule1562 is expected to be allowed :create_pipeline_schedule1563 for play_pipeline_schedule1564 is expected to be allowed :play_pipeline_schedule1565 push_access_level: :no_one_can_push, merge_access_level: :maintainers_can_merge, project_role: :maintainer, accessible: :be_allowed1566 for create_pipeline_schedule1567 is expected to be allowed :create_pipeline_schedule1568 for play_pipeline_schedule1569 is expected to be allowed :play_pipeline_schedule1570 push_access_level: :no_one_can_push, merge_access_level: :maintainers_can_merge, project_role: :developer, accessible: :be_disallowed1571 for create_pipeline_schedule1572 is expected to be disallowed :create_pipeline_schedule1573 for play_pipeline_schedule1574 is expected to be disallowed :play_pipeline_schedule1575 push_access_level: :no_one_can_push, merge_access_level: :maintainers_can_merge, project_role: :reporter, accessible: :be_disallowed1576 for create_pipeline_schedule1577 is expected to be disallowed :create_pipeline_schedule1578 for play_pipeline_schedule1579 is expected to be disallowed :play_pipeline_schedule1580 push_access_level: :no_one_can_push, merge_access_level: :maintainers_can_merge, project_role: :guest, accessible: :be_disallowed1581 for create_pipeline_schedule1582 is expected to be disallowed :create_pipeline_schedule1583 for play_pipeline_schedule1584 is expected to be disallowed :play_pipeline_schedule1585 push_access_level: :maintainers_can_push, merge_access_level: :maintainers_can_merge, project_role: :owner, accessible: :be_allowed1586 for create_pipeline_schedule1587 is expected to be allowed :create_pipeline_schedule1588 for play_pipeline_schedule1589 is expected to be allowed :play_pipeline_schedule1590 push_access_level: :maintainers_can_push, merge_access_level: :maintainers_can_merge, project_role: :maintainer, accessible: :be_allowed1591 for create_pipeline_schedule1592 is expected to be allowed :create_pipeline_schedule1593 for play_pipeline_schedule1594 is expected to be allowed :play_pipeline_schedule1595 push_access_level: :maintainers_can_push, merge_access_level: :maintainers_can_merge, project_role: :developer, accessible: :be_disallowed1596 for create_pipeline_schedule1597 is expected to be disallowed :create_pipeline_schedule1598 for play_pipeline_schedule1599 is expected to be disallowed :play_pipeline_schedule1600 push_access_level: :maintainers_can_push, merge_access_level: :maintainers_can_merge, project_role: :reporter, accessible: :be_disallowed1601 for create_pipeline_schedule1602 is expected to be disallowed :create_pipeline_schedule1603 for play_pipeline_schedule1604 is expected to be disallowed :play_pipeline_schedule1605 push_access_level: :maintainers_can_push, merge_access_level: :maintainers_can_merge, project_role: :guest, accessible: :be_disallowed1606 for create_pipeline_schedule1607 is expected to be disallowed :create_pipeline_schedule1608 for play_pipeline_schedule1609 is expected to be disallowed :play_pipeline_schedule1610 push_access_level: :developers_can_push, merge_access_level: :maintainers_can_merge, project_role: :owner, accessible: :be_allowed1611 for create_pipeline_schedule1612 is expected to be allowed :create_pipeline_schedule1613 for play_pipeline_schedule1614 is expected to be allowed :play_pipeline_schedule1615 push_access_level: :developers_can_push, merge_access_level: :maintainers_can_merge, project_role: :maintainer, accessible: :be_allowed1616 for create_pipeline_schedule1617 is expected to be allowed :create_pipeline_schedule1618 for play_pipeline_schedule1619 is expected to be allowed :play_pipeline_schedule1620 push_access_level: :developers_can_push, merge_access_level: :maintainers_can_merge, project_role: :developer, accessible: :be_allowed1621 for create_pipeline_schedule1622 is expected to be allowed :create_pipeline_schedule1623 for play_pipeline_schedule1624 is expected to be allowed :play_pipeline_schedule1625 push_access_level: :developers_can_push, merge_access_level: :maintainers_can_merge, project_role: :reporter, accessible: :be_disallowed1626 for create_pipeline_schedule1627 is expected to be disallowed :create_pipeline_schedule1628 for play_pipeline_schedule1629 is expected to be disallowed :play_pipeline_schedule1630 push_access_level: :developers_can_push, merge_access_level: :maintainers_can_merge, project_role: :guest, accessible: :be_disallowed1631 for create_pipeline_schedule1632 is expected to be disallowed :create_pipeline_schedule1633 for play_pipeline_schedule1634 is expected to be disallowed :play_pipeline_schedule1635 push_access_level: :no_one_can_push, merge_access_level: :developers_can_merge, project_role: :owner, accessible: :be_allowed1636 for create_pipeline_schedule1637 is expected to be allowed :create_pipeline_schedule1638 for play_pipeline_schedule1639 is expected to be allowed :play_pipeline_schedule1640 push_access_level: :no_one_can_push, merge_access_level: :developers_can_merge, project_role: :maintainer, accessible: :be_allowed1641 for create_pipeline_schedule1642 is expected to be allowed :create_pipeline_schedule1643 for play_pipeline_schedule1644 is expected to be allowed :play_pipeline_schedule1645 push_access_level: :no_one_can_push, merge_access_level: :developers_can_merge, project_role: :developer, accessible: :be_allowed1646 for create_pipeline_schedule1647 is expected to be allowed :create_pipeline_schedule1648 for play_pipeline_schedule1649 is expected to be allowed :play_pipeline_schedule1650 push_access_level: :no_one_can_push, merge_access_level: :developers_can_merge, project_role: :reporter, accessible: :be_disallowed1651 for create_pipeline_schedule1652 is expected to be disallowed :create_pipeline_schedule1653 for play_pipeline_schedule1654 is expected to be disallowed :play_pipeline_schedule1655 push_access_level: :no_one_can_push, merge_access_level: :developers_can_merge, project_role: :guest, accessible: :be_disallowed1656 for create_pipeline_schedule1657 is expected to be disallowed :create_pipeline_schedule1658 for play_pipeline_schedule1659 is expected to be disallowed :play_pipeline_schedule1660 push_access_level: :maintainers_can_push, merge_access_level: :developers_can_merge, project_role: :owner, accessible: :be_allowed1661 for create_pipeline_schedule1662 is expected to be allowed :create_pipeline_schedule1663 for play_pipeline_schedule1664 is expected to be allowed :play_pipeline_schedule1665 push_access_level: :maintainers_can_push, merge_access_level: :developers_can_merge, project_role: :maintainer, accessible: :be_allowed1666 for create_pipeline_schedule1667 is expected to be allowed :create_pipeline_schedule1668 for play_pipeline_schedule1669 is expected to be allowed :play_pipeline_schedule1670 push_access_level: :maintainers_can_push, merge_access_level: :developers_can_merge, project_role: :developer, accessible: :be_allowed1671 for create_pipeline_schedule1672 is expected to be allowed :create_pipeline_schedule1673 for play_pipeline_schedule1674 is expected to be allowed :play_pipeline_schedule1675 push_access_level: :maintainers_can_push, merge_access_level: :developers_can_merge, project_role: :reporter, accessible: :be_disallowed1676 for create_pipeline_schedule1677 is expected to be disallowed :create_pipeline_schedule1678 for play_pipeline_schedule1679 is expected to be disallowed :play_pipeline_schedule1680 push_access_level: :maintainers_can_push, merge_access_level: :developers_can_merge, project_role: :guest, accessible: :be_disallowed1681 for create_pipeline_schedule1682 is expected to be disallowed :create_pipeline_schedule1683 for play_pipeline_schedule1684 is expected to be disallowed :play_pipeline_schedule1685 push_access_level: :developers_can_push, merge_access_level: :developers_can_merge, project_role: :owner, accessible: :be_allowed1686 for create_pipeline_schedule1687 is expected to be allowed :create_pipeline_schedule1688 for play_pipeline_schedule1689 is expected to be allowed :play_pipeline_schedule1690 push_access_level: :developers_can_push, merge_access_level: :developers_can_merge, project_role: :maintainer, accessible: :be_allowed1691 for create_pipeline_schedule1692 is expected to be allowed :create_pipeline_schedule1693 for play_pipeline_schedule1694 is expected to be allowed :play_pipeline_schedule1695 push_access_level: :developers_can_push, merge_access_level: :developers_can_merge, project_role: :developer, accessible: :be_allowed1696 for create_pipeline_schedule1697 is expected to be allowed :create_pipeline_schedule1698 for play_pipeline_schedule1699 is expected to be allowed :play_pipeline_schedule1700 push_access_level: :developers_can_push, merge_access_level: :developers_can_merge, project_role: :reporter, accessible: :be_disallowed1701 for create_pipeline_schedule1702 is expected to be disallowed :create_pipeline_schedule1703 for play_pipeline_schedule1704 is expected to be disallowed :play_pipeline_schedule1705 push_access_level: :developers_can_push, merge_access_level: :developers_can_merge, project_role: :guest, accessible: :be_disallowed1706 for create_pipeline_schedule1707 is expected to be disallowed :create_pipeline_schedule1708 for play_pipeline_schedule1709 is expected to be disallowed :play_pipeline_schedule1710 for tag1711 with refs/tags/v1.0.01712 access_level: :no_one_can_create, project_role: :owner, accessible: :be_disallowed1713 for create_pipeline_schedule1714 is expected to be disallowed :create_pipeline_schedule1715 for play_pipeline_schedule1716 is expected to be disallowed :play_pipeline_schedule1717 access_level: :no_one_can_create, project_role: :maintainer, accessible: :be_disallowed1718 for create_pipeline_schedule1719 is expected to be disallowed :create_pipeline_schedule1720 for play_pipeline_schedule1721 is expected to be disallowed :play_pipeline_schedule1722 access_level: :no_one_can_create, project_role: :developer, accessible: :be_disallowed1723 for create_pipeline_schedule1724 is expected to be disallowed :create_pipeline_schedule1725 for play_pipeline_schedule1726 is expected to be disallowed :play_pipeline_schedule1727 access_level: :no_one_can_create, project_role: :reporter, accessible: :be_disallowed1728 for create_pipeline_schedule1729 is expected to be disallowed :create_pipeline_schedule1730 for play_pipeline_schedule1731 is expected to be disallowed :play_pipeline_schedule1732 access_level: :no_one_can_create, project_role: :guest, accessible: :be_disallowed1733 for create_pipeline_schedule1734 is expected to be disallowed :create_pipeline_schedule1735 for play_pipeline_schedule1736 is expected to be disallowed :play_pipeline_schedule1737 access_level: :maintainers_can_create, project_role: :owner, accessible: :be_allowed1738 for create_pipeline_schedule1739 is expected to be allowed :create_pipeline_schedule1740 for play_pipeline_schedule1741 is expected to be allowed :play_pipeline_schedule1742 access_level: :maintainers_can_create, project_role: :maintainer, accessible: :be_allowed1743 for create_pipeline_schedule1744 is expected to be allowed :create_pipeline_schedule1745 for play_pipeline_schedule1746 is expected to be allowed :play_pipeline_schedule1747 access_level: :maintainers_can_create, project_role: :developer, accessible: :be_disallowed1748 for create_pipeline_schedule1749 is expected to be disallowed :create_pipeline_schedule1750 for play_pipeline_schedule1751 is expected to be disallowed :play_pipeline_schedule1752 access_level: :maintainers_can_create, project_role: :reporter, accessible: :be_disallowed1753 for create_pipeline_schedule1754 is expected to be disallowed :create_pipeline_schedule1755 for play_pipeline_schedule1756 is expected to be disallowed :play_pipeline_schedule1757 access_level: :maintainers_can_create, project_role: :guest, accessible: :be_disallowed1758 for create_pipeline_schedule1759 is expected to be disallowed :create_pipeline_schedule1760 for play_pipeline_schedule1761 is expected to be disallowed :play_pipeline_schedule1762 access_level: :developers_can_create, project_role: :owner, accessible: :be_allowed1763 for create_pipeline_schedule1764 is expected to be allowed :create_pipeline_schedule1765 for play_pipeline_schedule1766 is expected to be allowed :play_pipeline_schedule1767 access_level: :developers_can_create, project_role: :maintainer, accessible: :be_allowed1768 for create_pipeline_schedule1769 is expected to be allowed :create_pipeline_schedule1770 for play_pipeline_schedule1771 is expected to be allowed :play_pipeline_schedule1772 access_level: :developers_can_create, project_role: :developer, accessible: :be_allowed1773 for create_pipeline_schedule1774 is expected to be allowed :create_pipeline_schedule1775 for play_pipeline_schedule1776 is expected to be allowed :play_pipeline_schedule1777 access_level: :developers_can_create, project_role: :reporter, accessible: :be_disallowed1778 for create_pipeline_schedule1779 is expected to be disallowed :create_pipeline_schedule1780 for play_pipeline_schedule1781 is expected to be disallowed :play_pipeline_schedule1782 access_level: :developers_can_create, project_role: :guest, accessible: :be_disallowed1783 for create_pipeline_schedule1784 is expected to be disallowed :create_pipeline_schedule1785 for play_pipeline_schedule1786 is expected to be disallowed :play_pipeline_schedule1787 with v1.0.01788 access_level: :no_one_can_create, project_role: :owner, accessible: :be_disallowed1789 for create_pipeline_schedule1790 is expected to be disallowed :create_pipeline_schedule1791 for play_pipeline_schedule1792 is expected to be disallowed :play_pipeline_schedule1793 access_level: :no_one_can_create, project_role: :maintainer, accessible: :be_disallowed1794 for create_pipeline_schedule1795 is expected to be disallowed :create_pipeline_schedule1796 for play_pipeline_schedule1797 is expected to be disallowed :play_pipeline_schedule1798 access_level: :no_one_can_create, project_role: :developer, accessible: :be_disallowed1799 for create_pipeline_schedule1800 is expected to be disallowed :create_pipeline_schedule1801 for play_pipeline_schedule1802 is expected to be disallowed :play_pipeline_schedule1803 access_level: :no_one_can_create, project_role: :reporter, accessible: :be_disallowed1804 for create_pipeline_schedule1805 is expected to be disallowed :create_pipeline_schedule1806 for play_pipeline_schedule1807 is expected to be disallowed :play_pipeline_schedule1808 access_level: :no_one_can_create, project_role: :guest, accessible: :be_disallowed1809 for create_pipeline_schedule1810 is expected to be disallowed :create_pipeline_schedule1811 for play_pipeline_schedule1812 is expected to be disallowed :play_pipeline_schedule1813 access_level: :maintainers_can_create, project_role: :owner, accessible: :be_allowed1814 for create_pipeline_schedule1815 is expected to be allowed :create_pipeline_schedule1816 for play_pipeline_schedule1817 is expected to be allowed :play_pipeline_schedule1818 access_level: :maintainers_can_create, project_role: :maintainer, accessible: :be_allowed1819 for create_pipeline_schedule1820 is expected to be allowed :create_pipeline_schedule1821 for play_pipeline_schedule1822 is expected to be allowed :play_pipeline_schedule1823 access_level: :maintainers_can_create, project_role: :developer, accessible: :be_disallowed1824 for create_pipeline_schedule1825 is expected to be disallowed :create_pipeline_schedule1826 for play_pipeline_schedule1827 is expected to be disallowed :play_pipeline_schedule1828 access_level: :maintainers_can_create, project_role: :reporter, accessible: :be_disallowed1829 for create_pipeline_schedule1830 is expected to be disallowed :create_pipeline_schedule1831 for play_pipeline_schedule1832 is expected to be disallowed :play_pipeline_schedule1833 access_level: :maintainers_can_create, project_role: :guest, accessible: :be_disallowed1834 for create_pipeline_schedule1835 is expected to be disallowed :create_pipeline_schedule1836 for play_pipeline_schedule1837 is expected to be disallowed :play_pipeline_schedule1838 access_level: :developers_can_create, project_role: :owner, accessible: :be_allowed1839 for create_pipeline_schedule1840 is expected to be allowed :create_pipeline_schedule1841 for play_pipeline_schedule1842 is expected to be allowed :play_pipeline_schedule1843 access_level: :developers_can_create, project_role: :maintainer, accessible: :be_allowed1844 for create_pipeline_schedule1845 is expected to be allowed :create_pipeline_schedule1846 for play_pipeline_schedule1847 is expected to be allowed :play_pipeline_schedule1848 access_level: :developers_can_create, project_role: :developer, accessible: :be_allowed1849 for create_pipeline_schedule1850 is expected to be allowed :create_pipeline_schedule1851 for play_pipeline_schedule1852 is expected to be allowed :play_pipeline_schedule1853 access_level: :developers_can_create, project_role: :reporter, accessible: :be_disallowed1854 for create_pipeline_schedule1855 is expected to be disallowed :create_pipeline_schedule1856 for play_pipeline_schedule1857 is expected to be disallowed :play_pipeline_schedule1858 access_level: :developers_can_create, project_role: :guest, accessible: :be_disallowed1859 for create_pipeline_schedule1860 is expected to be disallowed :create_pipeline_schedule1861 for play_pipeline_schedule1862 is expected to be disallowed :play_pipeline_schedule1863 rules for owner of schedule1864 includes abilities to do all operations on pipeline schedule1865 rules for a maintainer1866 allows for playing and destroying a pipeline schedule1867 does not allow for updating of an existing schedule1868 rules for non-owner of schedule1869 includes abilities to take ownership1870Gitlab::ImportExport::Project::TreeSaver1871 behaves like saves project tree successfully1872 saves project tree attributes1873 with project root1874 is expected to include {"description" => "description", "visibility_level" => 20}1875 is expected not to include {"runners_token" => "token"}1876 has approvals_before_merge set1877 with milestones1878 is expected not to be empty1879 with merge_requests1880 is expected not to be empty1881 has merge request's milestones1882 has merge request's source branch SHA1883 has merge request's target branch SHA1884 has events1885 has merge requests diffs1886 has merge request diff files1887 has merge request diff commits1888 has merge requests comments1889 has author on merge requests comments1890 has merge request approvals1891 has merge request resource label events1892 has merge request assignees1893 has merge request reviewers1894 has merge requests system notes1895 has no merge_when_pipeline_succeeds1896 with snippets1897 is expected not to be empty1898 has snippet notes1899 with releases1900 is expected not to be empty1901 has no author on releases1902 has the author ID on releases1903 with issues1904 is expected not to be empty1905 has a work_item_type1906 has issue comments1907 has issue assignees1908 has author on issue comments1909 has labels associated to records1910 has project and group labels1911 has priorities associated to labels1912 has issue resource label events1913 saves the issue designs correctly1914 saves the issue design notes correctly1915 saves the issue design versions correctly1916 with ci_pipelines1917 is expected not to be empty1918 has pipeline stages1919 has pipeline builds1920 has pipeline generic_commit_statuses1921 has pipeline bridges1922 with commit_notes1923 is expected not to be empty1924 with labels1925 is expected not to be empty1926 with project_feature1927 is expected not to be empty1928 has project feature1929 with custom_attributes1930 has custom attributes1931 with badges1932 has badges1933 with project_members1934 is expected not to be empty1935 with boards1936 is expected not to be empty1937 with pipeline schedules1938 has owner_id1939 #saves project tree1940 saves project successfully1941 does not complain about non UTF-8 characters in MR diff files1942 overrides group members1943 when has no permission1944 does not export group members1945 when has permission as maintainer1946 does not export group members1947 when has permission as group owner1948 exports group members as group owner1949 as admin1950 when admin mode is enabled1951 exports group members as admin1952 exports group members as project members1953 when admin mode is disabled1954 does not export group members1955 with description override1956 is expected to include {"description" => "Foo Bar"}1957 when streaming has to retry1958 retries and succeeds1959 retries and does not succeed1960Gitlab::Database::MigrationHelpers::AutomaticLockWritesOnTables1961 # order random1962 when reversing drop_table migrations1963 when single database1964main: == : migrating ===============================================================1965main: -- drop_table(:_test_gitlab_main_table)1966main: -> 0.0017s1967main: == : migrated (0.0107s) ======================================================1968main: == : migrating ===============================================================1969main: -- drop_table(:_test_gitlab_ci_table)1970main: -> 0.0014s1971main: == : migrated (0.0079s) ======================================================1972main: == : migrating ===============================================================1973main: -- drop_table(:_test_table)1974main: -> 0.0019s1975main: == : migrated (0.0078s) ======================================================1976main: == : reverting ===============================================================1977main: -- create_table(:_test_gitlab_main_table)1978main: -> 0.0031s1979main: == : reverted (0.0129s) ======================================================1980main: == : reverting ===============================================================1981main: -- create_table(:_test_gitlab_ci_table)1982main: -> 0.0023s1983main: == : reverted (0.0090s) ======================================================1984main: == : reverting ===============================================================1985main: -- create_table(:_test_table)1986main: -> 0.0022s1987main: == : reverted (0.0087s) ======================================================1988 does not lock any newly created tables1989 when multiple databases1990 for re-creating a gitlab_main table1991 behaves like does not lock writes on table1992 allows deleting records from the table (PENDING: Skipping because ci is shared or doesn't not exist)1993 behaves like locks writes on table1994 errors on deleting (PENDING: Skipping because ci is shared or doesn't not exist)1995 for re-creating a gitlab_ci table1996 behaves like does not lock writes on table1997 allows deleting records from the table (PENDING: Skipping because ci is shared or doesn't not exist)1998 behaves like locks writes on table1999 errors on deleting (PENDING: Skipping because ci is shared or doesn't not exist)2000 for re-creating a gitlab_shared table2001 behaves like does not lock writes on table2002 allows deleting records from the table (PENDING: Skipping because ci is shared or doesn't not exist)2003 behaves like does not lock writes on table2004 allows deleting records from the table (PENDING: Skipping because ci is shared or doesn't not exist)2005 when executing create_table migrations2006 when single database2007main: == : migrating ===============================================================2008main: -- create_table(:_test_gitlab_main_table)2009main: -> 0.0047s2010main: == : migrated (0.0124s) ======================================================2011main: == : migrating ===============================================================2012main: -- create_table(:_test_gitlab_main_cell_table)2013main: -> 0.0023s2014main: == : migrated (0.0088s) ======================================================2015main: == : migrating ===============================================================2016main: -- create_table(:_test_gitlab_main_clusterwide_table)2017main: -> 0.0022s2018main: == : migrated (0.0081s) ======================================================2019main: == : migrating ===============================================================2020main: -- create_table(:_test_gitlab_ci_table)2021main: -> 0.0050s2022main: == : migrated (0.0111s) ======================================================2023main: == : migrating ===============================================================2024main: -- create_table(:_test_table)2025main: -> 0.0022s2026main: == : migrated (0.0081s) ======================================================2027 does not lock any newly created tables2028 when multiple databases2029 for creating a gitlab_main table2030 behaves like does not lock writes on table2031 allows deleting records from the table (PENDING: Skipping because ci is shared or doesn't not exist)2032 behaves like locks writes on table2033 errors on deleting (PENDING: Skipping because ci is shared or doesn't not exist)2034 when table listed as a deleted table2035 behaves like does not lock writes on table2036 allows deleting records from the table (PENDING: Skipping because ci is shared or doesn't not exist)2037 when the migration skips automatic locking of tables2038 behaves like does not lock writes on table2039 allows deleting records from the table (PENDING: Skipping because ci is shared or doesn't not exist)2040 when migration does not run within a transaction2041 behaves like locks writes on table using WithLockRetries2042 locks the writes on the table using WithLockRetries (PENDING: Skipping because ci is shared or doesn't not exist)2043 when the SKIP_AUTOMATIC_LOCK_ON_WRITES feature flag is set2044 behaves like does not lock writes on table2045 allows deleting records from the table (PENDING: Skipping because ci is shared or doesn't not exist)2046 when the automatic_lock_writes_on_table feature flag is disabled2047 behaves like does not lock writes on table2048 allows deleting records from the table (PENDING: Skipping because ci is shared or doesn't not exist)2049 for creating a gitlab_main_clusterwide table2050 behaves like does not lock writes on table2051 allows deleting records from the table (PENDING: Skipping because ci is shared or doesn't not exist)2052 behaves like locks writes on table2053 errors on deleting (PENDING: Skipping because ci is shared or doesn't not exist)2054 for creating a gitlab_main_cell table2055 behaves like does not lock writes on table2056 allows deleting records from the table (PENDING: Skipping because ci is shared or doesn't not exist)2057 behaves like locks writes on table2058 errors on deleting (PENDING: Skipping because ci is shared or doesn't not exist)2059 for creating a gitlab_pm table2060 behaves like does not lock writes on table2061 allows deleting records from the table (PENDING: Skipping because ci is shared or doesn't not exist)2062 behaves like locks writes on table2063 errors on deleting (PENDING: Skipping because ci is shared or doesn't not exist)2064 for creating a gitlab_ci table2065 behaves like does not lock writes on table2066 allows deleting records from the table (PENDING: Skipping because ci is shared or doesn't not exist)2067 behaves like locks writes on table2068 errors on deleting (PENDING: Skipping because ci is shared or doesn't not exist)2069 when table listed as a deleted table2070 behaves like does not lock writes on table2071 allows deleting records from the table (PENDING: Skipping because ci is shared or doesn't not exist)2072 when the migration skips automatic locking of tables2073 behaves like does not lock writes on table2074 allows deleting records from the table (PENDING: Skipping because ci is shared or doesn't not exist)2075 when the SKIP_AUTOMATIC_LOCK_ON_WRITES feature flag is set2076 behaves like does not lock writes on table2077 allows deleting records from the table (PENDING: Skipping because ci is shared or doesn't not exist)2078 when the automatic_lock_writes_on_table feature flag is disabled2079 behaves like does not lock writes on table2080 allows deleting records from the table (PENDING: Skipping because ci is shared or doesn't not exist)2081 for creating gitlab_shared table2082 behaves like does not lock writes on table2083 allows deleting records from the table (PENDING: Skipping because ci is shared or doesn't not exist)2084 behaves like does not lock writes on table2085 allows deleting records from the table (PENDING: Skipping because ci is shared or doesn't not exist)2086 for creating a gitlab_geo table2087 behaves like does not lock writes on table2088 allows deleting records from the table (PENDING: Skipping because ci is shared or doesn't not exist)2089 for creating an unknown gitlab_schema table2090 raises an error about undefined gitlab_schema (PENDING: Skipping because ci is shared or doesn't not exist)2091 when renaming a table2092 when a gitlab_main table2093 behaves like does not lock writes on table2094 allows deleting records from the table (PENDING: Skipping because ci is shared or doesn't not exist)2095 behaves like locks writes on table2096 errors on deleting (PENDING: Skipping because ci is shared or doesn't not exist)2097 when a gitlab_ci table2098 behaves like does not lock writes on table2099 allows deleting records from the table (PENDING: Skipping because ci is shared or doesn't not exist)2100 behaves like locks writes on table2101 errors on deleting (PENDING: Skipping because ci is shared or doesn't not exist)2102Suggestions::ApplyService2103 patch is appliable2104 non-fork project2105 behaves like successfully creates commit and updates suggestions2106 updates the files with the new content2107 updates suggestion applied and commit_id columns2108 created commit has users email and name2109 tracks apply suggestion event2110 when a custom suggestion commit message2111 is not specified2112 uses the default commit message2113 is specified2114 generates a custom commit message2115 with a user suggested commit message2116 uses the user's commit message2117 when it fails to apply because a file was changed2118 returns error message2119 when HEAD from position is different from source branch HEAD on repo2120 returns error message2121 single suggestion2122 author of suggestion applies suggestion2123 created commit by same author and committer2124 another user applies suggestion2125 created commit has authors info and commiters info2126 multiple suggestions2127 when all the same author2128 uses first authors information2129 when all different authors2130 uses committers information2131 multiple suggestions applied sequentially2132 applies multiple suggestions in subsequent versions correctly2133 multi-line suggestion2134 behaves like successfully creates commit and updates suggestions2135 updates the files with the new content2136 updates suggestion applied and commit_id columns2137 created commit has users email and name2138 tracks apply suggestion event2139 when a custom suggestion commit message2140 is not specified2141 uses the default commit message2142 is specified2143 generates a custom commit message2144 with a user suggested commit message2145 uses the user's commit message2146 remove an empty line suggestion2147 behaves like successfully creates commit and updates suggestions2148 updates the files with the new content2149 updates suggestion applied and commit_id columns2150 created commit has users email and name2151 tracks apply suggestion event2152 when a custom suggestion commit message2153 is not specified2154 uses the default commit message2155 is specified2156 generates a custom commit message2157 with a user suggested commit message2158 uses the user's commit message2159 fork-project2160 updates file in the source project2161 no permission2162 user cannot write in project repo2163 returns error2164 patch is not appliable2165 diff file was not found2166 returns error message2167 behaves like service not tracking apply suggestion event2168 does not track apply suggestion event2169 when not all suggestions belong to the same branch2170 renders error message2171 behaves like service not tracking apply suggestion event2172 does not track apply suggestion event2173 suggestion is not appliable2174 returns error message2175 behaves like service not tracking apply suggestion event2176 does not track apply suggestion event2177 lines of suggestions overlap2178 returns error message2179 behaves like service not tracking apply suggestion event2180 does not track apply suggestion event2181Packages::Maven::Metadata::CreateVersionsXmlService2182 #execute2183 with same versions in both sides2184 returns no changes2185 with more versions2186 in the xml side2187 behaves like returning an xml with versions in the database2188 returns an metadata versions xml with versions in the database2189 in the database side2190 behaves like returning an xml with versions in the database2191 returns an metadata versions xml with versions in the database2192 with an xml without a release version2193 logs a warn with the reason2194 behaves like returning an xml with versions in the database2195 returns an metadata versions xml with versions in the database2196 with completely different versions2197 behaves like returning an xml with versions in the database2198 returns an metadata versions xml with versions in the database2199 with no versions in the database2200 returns a success2201 with an xml without a release version2202 returns a success2203 with differences in both sides2204 behaves like returning an xml with versions in the database2205 returns an metadata versions xml with versions in the database2206 with a new release and latest from the database2207 behaves like returning an xml with2208 returns an xml with the updated release and latest versions2209 with a latest in the xml2210 behaves like returning an xml with2211 returns an xml with the updated release and latest versions2212 with release and latest not existing in the database2213 behaves like returning an xml with2214 returns an xml with the updated release and latest versions2215 with added versions in the database side no more recent than release2216 behaves like returning an xml with2217 returns an xml with the updated release and latest versions2218 with a latest in the xml2219 behaves like returning an xml with2220 returns an xml with the updated release and latest versions2221 only snapshot versions are in the database2222 returns an xml without any release element2223 behaves like returning an xml with2224 returns an xml with the updated release and latest versions2225 last updated timestamp2226 updates the last updated timestamp2227 with an incomplete metadata content2228 behaves like returning an error service response2229 returns an error service response2230 with an invalid metadata content2231 behaves like returning an error service response2232 returns an error service response2233 behaves like handling metadata content pointing to a file for the create xml service2234 with metadata content pointing to a file2235 with valid content2236 returns no changes2237 with invalid content2238 behaves like returning an error service response2239 returns an error service response2240 with no content2241 behaves like returning an error service response2242 returns an error service response2243 behaves like handling invalid parameters for create xml service2244 with no package2245 behaves like returning an error service response2246 returns an error service response2247 with no metadata content2248 behaves like returning an error service response2249 returns an error service response2250Ci::Runners::CreateRunnerService#execute2251 # order random2252 with :runner_type param set to instance_type2253 when anonymous user2254 behaves like it cannot create a runner2255 runner payload is nil2256 is expected to be error2257 when non-admin user2258 behaves like it cannot create a runner2259 runner payload is nil2260 is expected to be error2261 when admin user2262 behaves like it cannot create a runner2263 runner payload is nil2264 is expected to be error2265 when admin mode is enabled2266 behaves like it can create a runner2267 creates a runner of the specified type2268 with default params provided2269 is expected to be success2270 uses default values when none are provided2271 with non-default params provided2272 is expected to be success2273 creates runner with specified values2274 with a nil paused value2275 is expected to be success2276 creates runner with active set to true2277 with no paused value given2278 is expected to be success2279 creates runner with active set to true2280 behaves like it can return an error2281 when the runner fails to save2282 returns error message2283 behaves like it cannot create a runner2284 runner payload is nil2285 is expected to be error2286 with unexpected scope param specified2287 behaves like it cannot create a runner2288 runner payload is nil2289 is expected to be error2290 when model validation fails2291 returns error message and reason2292 behaves like it cannot create a runner2293 runner payload is nil2294 is expected to be error2295 with :runner_type param set to project_type2296 when anonymous user2297 behaves like it cannot create a runner2298 runner payload is nil2299 is expected to be error2300 when group owner2301 behaves like it can create a runner2302 creates a runner of the specified type2303 with default params provided2304 is expected to be success2305 uses default values when none are provided2306 with non-default params provided2307 is expected to be success2308 creates runner with specified values2309 with a nil paused value2310 is expected to be success2311 creates runner with active set to true2312 with no paused value given2313 is expected to be success2314 creates runner with active set to true2315 with missing scope param2316 behaves like it cannot create a runner2317 runner payload is nil2318 is expected to be error2319 when non-admin user2320 behaves like it cannot create a runner2321 runner payload is nil2322 is expected to be error2323 with project permissions to create runner2324 behaves like it can create a runner2325 creates a runner of the specified type2326 with default params provided2327 is expected to be success2328 uses default values when none are provided2329 with non-default params provided2330 is expected to be success2331 creates runner with specified values2332 with a nil paused value2333 is expected to be success2334 creates runner with active set to true2335 with no paused value given2336 is expected to be success2337 creates runner with active set to true2338 when admin user2339 behaves like it cannot create a runner2340 runner payload is nil2341 is expected to be error2342 when admin mode is enabled2343 behaves like it can create a runner2344 creates a runner of the specified type2345 with default params provided2346 is expected to be success2347 uses default values when none are provided2348 with non-default params provided2349 is expected to be success2350 creates runner with specified values2351 with a nil paused value2352 is expected to be success2353 creates runner with active set to true2354 with no paused value given2355 is expected to be success2356 creates runner with active set to true2357 behaves like it can return an error2358 when the runner fails to save2359 returns error message2360 behaves like it cannot create a runner2361 runner payload is nil2362 is expected to be error2363 with :runner_type param set to group_type2364 when anonymous user2365 behaves like it cannot create a runner2366 runner payload is nil2367 is expected to be error2368 when non-admin user2369 behaves like it cannot create a runner2370 runner payload is nil2371 is expected to be error2372 when group owner2373 behaves like it can create a runner2374 creates a runner of the specified type2375 with default params provided2376 is expected to be success2377 uses default values when none are provided2378 with non-default params provided2379 is expected to be success2380 creates runner with specified values2381 with a nil paused value2382 is expected to be success2383 creates runner with active set to true2384 with no paused value given2385 is expected to be success2386 creates runner with active set to true2387 with missing scope param2388 behaves like it cannot create a runner2389 runner payload is nil2390 is expected to be error2391 when admin user2392 behaves like it cannot create a runner2393 runner payload is nil2394 is expected to be error2395 when admin mode is enabled2396 behaves like it can create a runner2397 creates a runner of the specified type2398 with default params provided2399 is expected to be success2400 uses default values when none are provided2401 with non-default params provided2402 is expected to be success2403 creates runner with specified values2404 with a nil paused value2405 is expected to be success2406 creates runner with active set to true2407 with no paused value given2408 is expected to be success2409 creates runner with active set to true2410 behaves like it can return an error2411 when the runner fails to save2412 returns error message2413 behaves like it cannot create a runner2414 runner payload is nil2415 is expected to be error2416TodosFinder2417 #execute2418 #execute2419 returns no todos if user is nil2420 filtering2421 returns correct todos when filtered by a project2422 returns correct todos when filtered by a group2423 when filtering by type2424 returns todos by type when filtered by a single type2425 returns todos by type when filtered by multiple types2426 returns all todos when type is nil2427 returns all todos when type is an empty collection2428 returns all todos when type is blank2429 returns todos by type when blank type is in type collection2430 returns todos of all types when only blanks are in a collection2431 returns all todos when no type param2432 raises an argument error when invalid type is passed2433 when filtering for actions2434 by action ids2435 returns the expected todos2436 returns the expected todos when filtering for multiple action ids2437 by action names2438 returns the expected todos2439 returns the expected todos when filtering for multiple action names2440 when filtering by author2441 returns correct todos when filtering by an author2442 querying for multiple authors2443 returns the correct todo items2444 by groups2445 with subgroups2446 returns todos from subgroups when filtered by a group2447 filtering for multiple groups2448 returns the expected groups2449 by state2450 returns the expected items when no state is provided2451 returns the expected items when a state is provided2452 returns the expected items when multiple states are provided2453 by project2454 returns the expected todos for one project2455 returns the expected todos for many projects2456 when filtering by target id2457 returns the expected todos for the target2458 returns the expected todos for multiple target ids2459 returns the expected todos for empty target id collection2460 external authorization2461 behaves like a finder with external authorization service2462 finds the subject2463 with an external authorization service2464 does not include the subject when no project was given2465 includes the subject when a project id was given2466 #sort2467 sorts by priority2468 by date2469 sorts with oldest created first2470 sorts with newest created first2471 .todo_types2472 returns the expected types2473 #any_for_target?2474 returns true if there are any todos for the given target2475 returns false if there are no todos for the given target2476Gitlab::Ci::Trace2477 associations2478 is expected to respond to #job2479 when trace is migrated to object storage2480 reloads the trace in case of a chunk error2481 when live trace feature is disabled2482 behaves like trace with disabled live trace feature2483 behaves like common trace features2484 #html2485 returns formatted html2486 returns last line of formatted html2487 #raw2488 returns raw output2489 returns last line of raw output2490 #read2491 gitlab_ci_archived_trace_consistent_reads feature flag enabled2492 calls ::Ci::Build.sticking.find_caught_up_replica2493 gitlab_ci_archived_trace_consistent_reads feature flag disabled2494 does not call ::Ci::Build.sticking.find_caught_up_replica2495 #extract_coverage2496 matching coverage2497 returns valid coverage2498 no coverage2499 returs nil2500 #extract_sections2501 no sections2502 returs []2503 multiple sections available2504 returns valid sections2505 logs contains "section_start"2506 returns only one section2507 missing section_end2508 returns no sections2509 missing section_start2510 returns no sections2511 inverted section_start section_end2512 returns no sections2513 #write2514 when arhicved trace does not exist yet2515 does not raise an error2516 when arhicved trace already exists2517 raises an error2518 #set2519 returns trace2520 overwrite trace2521 returns new trace2522 runners token2523 hides token2524 hides build token2525 hides token2526 #append2527 returns correct trace2528 tries to append trace at different offset2529 fails with append2530 runners token2531 hides token2532 build token2533 hides token2534 #archive!2535 when live trace chunks exists2536 has job trace_chunks2537 gitlab_ci_archived_trace_consistent_reads feature flag enabled2538 calls ::Ci::Build.sticking.stick2539 gitlab_ci_archived_trace_consistent_reads feature flag disabled2540 does not call ::Ci::Build.sticking.stick2541 when build status is success2542 does not have an archived trace yet2543 when archives2544 has an archived trace2545 when another process has already been archiving2546 blocks concurrent archiving2547 #read2548 when trace artifact exists2549 behaves like read successfully with IO2550 yields with source2551 when current_path (with project_id) exists2552 behaves like read successfully with IO2553 yields with source2554 when no sources exist2555 behaves like failed to read2556 yields without source2557 trace handling2558 trace does not exist2559 is expected to equal false2560 when trace artifact exists2561 is expected to be truthy2562 when the trace artifact has been erased2563 is expected to be falsy2564 removes associations2565 new trace path is used2566 trace exist2567 can be erased2568 #archive!2569 when job does not have trace artifact2570 when trace file stored in default path2571 behaves like archive trace file2572 is expected to eq "f0ec4d8149e55ace7117d95f408160f8c4844b3ad76ee68b0d7e35989a44459e"2573 when failed to create clone file2574 behaves like source trace file stays intact2575 is expected to be truthy2576 when failed to create job artifact record2577 behaves like source trace file stays intact2578 is expected to be truthy2579 when job has trace artifact2580 does not archive2581 when job is not finished yet2582 does not archive2583 #erase!2584 when it is a live trace2585 when trace is stored in file storage2586 is expected not to be nil2587 removes trace2588 when it is an archived trace2589 has trace at first2590 removes trace2591 when live trace feature is enabled2592 behaves like trace with enabled live trace feature2593 behaves like common trace features2594 #html2595 returns formatted html2596 returns last line of formatted html2597 #raw2598 returns raw output2599 returns last line of raw output2600 #read2601 gitlab_ci_archived_trace_consistent_reads feature flag enabled2602 calls ::Ci::Build.sticking.find_caught_up_replica2603 gitlab_ci_archived_trace_consistent_reads feature flag disabled2604 does not call ::Ci::Build.sticking.find_caught_up_replica2605 #extract_coverage2606 matching coverage2607 returns valid coverage2608 no coverage2609 returs nil2610 #extract_sections2611 no sections2612 returs []2613 multiple sections available2614 returns valid sections2615 logs contains "section_start"2616 returns only one section2617 missing section_end2618 returns no sections2619 missing section_start2620 returns no sections2621 inverted section_start section_end2622 returns no sections2623 #write2624 when arhicved trace does not exist yet2625 does not raise an error2626 when arhicved trace already exists2627 raises an error2628 #set2629 returns trace2630 overwrite trace2631 returns new trace2632 runners token2633 hides token2634 hides build token2635 hides token2636 #append2637 returns correct trace2638 tries to append trace at different offset2639 fails with append2640 runners token2641 hides token2642 build token2643 hides token2644 #archive!2645 when live trace chunks exists2646 has job trace_chunks2647 gitlab_ci_archived_trace_consistent_reads feature flag enabled2648 calls ::Ci::Build.sticking.stick2649 gitlab_ci_archived_trace_consistent_reads feature flag disabled2650 does not call ::Ci::Build.sticking.stick2651 when build status is success2652 does not have an archived trace yet2653 when archives2654 has an archived trace2655 when another process has already been archiving2656 blocks concurrent archiving2657 #read2658 when trace artifact exists2659 behaves like read successfully with IO2660 yields with source2661 when live trace exists2662 behaves like read successfully with ChunkedIO2663 yields with source2664 when no sources exist2665 behaves like failed to read2666 yields without source2667 trace handling2668 trace does not exist2669 is expected to equal false2670 when trace artifact exists2671 is expected to be truthy2672 when the trace artifact has been erased2673 is expected to be falsy2674 removes associations2675 stored in live trace2676 trace exist2677 can be erased2678 returns live trace data2679 #archived?2680 when trace does not exist2681 is expected to be falsy2682 when archived trace exists2683 is truthy2684 when archived trace record exists but file is not stored2685 is falsy2686 when live trace exists2687 is expected to be falsy2688 #live?2689 when trace does not exist2690 is expected to be falsy2691 when archived trace exists2692 is expected to be falsy2693 when live trace exists2694 is expected to be truthy2695 #archive!2696 when job does not have trace artifact2697 when trace is stored in ChunkedIO2698 behaves like archive trace file in ChunkedIO2699 is expected to eq "f0ec4d8149e55ace7117d95f408160f8c4844b3ad76ee68b0d7e35989a44459e"2700 when failed to create clone file2701 behaves like a pre-commit error2702 does not save the trace artifact2703 behaves like source trace in ChunkedIO stays intact2704 is expected to eq "BUILD TRACE"2705 when failed to create job artifact record2706 behaves like a pre-commit error2707 does not save the trace artifact2708 behaves like source trace in ChunkedIO stays intact2709 is expected to eq "BUILD TRACE"2710 when storing the file raises an error2711 behaves like a post-commit error2712 saves the trace artifact but not the file2713 behaves like source trace in ChunkedIO stays intact2714 is expected to eq "BUILD TRACE"2715 when job has trace artifact2716 does not archive2717 when live trace chunks still exist2718 removes the traces2719 when job is not finished yet2720 does not archive2721 #erase!2722 when it is a live trace2723 is expected not to be nil2724 removes trace2725 when it is an archived trace2726 has trace at first2727 removes trace2728 #update_interval2729 it is not being watched2730 is expected to eq 60 seconds2731 it is being watched2732 returns 3 seconds2733 #being_watched!2734 sets gitlab:ci:trace:<job.id>:watched in redis2735 updates the expiry of gitlab:ci:trace:<job.id>:watched in redis2736 #being_watched?2737 gitlab:ci:trace:<job.id>:watched in redis is set2738 returns true2739 gitlab:ci:trace:<job.id>:watched in redis is not set2740 returns false2741 #lock2742 acquires an exclusive lease on the trace2743 #can_attempt_archival_now?2744 creates the record and returns true2745 #increment_archival_attempts!2746 creates the record and increments its value2747DesignManagement::DesignAtVersion2748 #id2749 combines design.id and version.id2750 #==2751 identifies objects created with the same parameters as equal2752 identifies unequal objects as unequal, by virtue of their version2753 identifies unequal objects as unequal, by virtue of their design2754 rejects objects with the same id and the wrong class2755 expects objects to be of the same type, not subtypes2756 status methods2757 a design before it has been created2758 is not deleted2759 has the status :not_created_yet2760 a design as of its creation2761 is not deleted2762 has the status :current2763 a design after it has been created, but before deletion2764 is not deleted2765 has the status :current2766 a design as of its modification2767 is not deleted2768 has the status :current2769 a design as of its deletion2770 is deleted2771 has the status :deleted2772 a design after its deletion2773 is deleted2774 has the status :deleted2775 a design on its recreation2776 is not deleted2777 has the status :current2778 validations2779 is expected to be valid2780 a design-at-version without a design2781 is expected to be invalid2782 mentions the design in the errors2783 a design-at-version without a version2784 is expected to be invalid2785 mentions the version in the errors2786 design_and_version_belong_to_the_same_issue2787 both design and version are supplied2788 the design belongs to the same issue as the version2789 is expected to be valid2790 the design does not belong to the same issue as the version2791 is expected to be invalid2792 the factory is just supplied with a design2793 is expected to be valid2794 the factory is just supplied with a version2795 is expected to be valid2796 design_and_version_have_issue_id2797 the design has no issue_id, because it is being imported2798 is expected to be invalid2799 the version has no issue_id, because it is being imported2800 is expected to be invalid2801 both the design and the version are being imported2802 is expected to be invalid2803 .lazy_find2804 issues fewer queries than the naive approach would2805 .find2806 invalid ids2807 #count2808 counts 0 records2809 #empty?2810 is empty2811 #to_a2812 finds no records2813 valid ids2814 #count2815 counts 2 records2816 issues at most two queries2817 #to_a2818 finds 6 records2819 only returns records with matching IDs2820 only returns valid records2821 issues at most two queries2822Gitlab::Git::Blob2823 initialize2824 handles nil data2825 records blob size2826 when untruncated2827 attempts to record gitlab_blob_truncated_false2828 when truncated2829 attempts to record gitlab_blob_truncated_true2830 .find with Gitaly enabled2831 behaves like .find2832 nil path2833 is expected to eq nil2834 utf-8 branch2835 is expected to eq "7e3e39ebb9b2bf433b4ad17313770fbe4051649c"2836 blank path2837 is expected to eq nil2838 file in subdir2839 is expected to eq "7e3e39ebb9b2bf433b4ad17313770fbe4051649c"2840 is expected to eq "popen.rb"2841 is expected to eq "files/ruby/popen.rb"2842 is expected to eq "b83d6e391c22777fca1ed3012fce84f633d7fed0"2843 is expected to eq "require 'fi"2844 is expected to eq 6692845 is expected to eq "100644"2846 file in root2847 is expected to eq "dfaa3f97ca337e20154a98ac9d0be76ddd1fcc82"2848 is expected to eq ".gitignore"2849 is expected to eq ".gitignore"2850 is expected to eq "b83d6e391c22777fca1ed3012fce84f633d7fed0"2851 is expected to eq "*.rbc\n*.sas"2852 is expected to eq 2412853 is expected to eq "100644"2854 is expected not to be binary in repo2855 file in root with leading slash2856 is expected to eq "dfaa3f97ca337e20154a98ac9d0be76ddd1fcc82"2857 is expected to eq ".gitignore"2858 is expected to eq ".gitignore"2859 is expected to eq "b83d6e391c22777fca1ed3012fce84f633d7fed0"2860 is expected to eq "*.rbc\n*.sas"2861 is expected to eq 2412862 is expected to eq "100644"2863 non-exist file2864 is expected to be nil2865 six submodule2866 is expected to eq "409f37c4f05865e4fb208c771485f211a22c4c2d"2867 is expected to eq ""2868 does not get messed up by load_all_data!2869 does not mark the blob as binary2870 large file2871 is expected to eq 1118032872 is expected to eq 10002873 check that this test is sane2874 can load all data2875 marks the blob as binary2876 .find with Rugged enabled2877 calls out to the Rugged implementation2878 behaves like .find2879 nil path2880 is expected to eq nil2881 utf-8 branch2882 is expected to eq "7e3e39ebb9b2bf433b4ad17313770fbe4051649c"2883 blank path2884 is expected to eq nil2885 file in subdir2886 is expected to eq "7e3e39ebb9b2bf433b4ad17313770fbe4051649c"2887 is expected to eq "popen.rb"2888 is expected to eq "files/ruby/popen.rb"2889 is expected to eq "b83d6e391c22777fca1ed3012fce84f633d7fed0"2890 is expected to eq "require 'fi"2891 is expected to eq 6692892 is expected to eq "100644"2893 file in root2894 is expected to eq "dfaa3f97ca337e20154a98ac9d0be76ddd1fcc82"2895 is expected to eq ".gitignore"2896 is expected to eq ".gitignore"2897 is expected to eq "b83d6e391c22777fca1ed3012fce84f633d7fed0"2898 is expected to eq "*.rbc\n*.sas"2899 is expected to eq 2412900 is expected to eq "100644"2901 is expected not to be binary in repo2902 file in root with leading slash2903 is expected to eq "dfaa3f97ca337e20154a98ac9d0be76ddd1fcc82"2904 is expected to eq ".gitignore"2905 is expected to eq ".gitignore"2906 is expected to eq "b83d6e391c22777fca1ed3012fce84f633d7fed0"2907 is expected to eq "*.rbc\n*.sas"2908 is expected to eq 2412909 is expected to eq "100644"2910 non-exist file2911 is expected to be nil2912 six submodule2913 is expected to eq "409f37c4f05865e4fb208c771485f211a22c4c2d"2914 is expected to eq ""2915 does not get messed up by load_all_data!2916 does not mark the blob as binary2917 large file2918 is expected to eq 1118032919 is expected to eq 10002920 check that this test is sane2921 can load all data2922 marks the blob as binary2923 .raw2924 is expected to eq "7e3e39ebb9b2bf433b4ad17313770fbe4051649c"2925 is expected to eq "require 'fi"2926 is expected to eq 6692927 is expected to be falsey2928 is expected to be nil2929 .batch2930 is expected to eq 22931 first blob2932 is expected to eq "7e3e39ebb9b2bf433b4ad17313770fbe4051649c"2933 is expected to eq "popen.rb"2934 is expected to eq "files/ruby/popen.rb"2935 is expected to eq "b83d6e391c22777fca1ed3012fce84f633d7fed0"2936 is expected to eq "require 'fi"2937 is expected to eq 6692938 is expected to eq "100644"2939 second blob2940 is expected to eq "409f37c4f05865e4fb208c771485f211a22c4c2d"2941 is expected to eq ""2942 does not mark the blob as binary2943 limiting2944 positive2945 is expected to eq 102946 zero2947 only loads the metadata2948 negative2949 ignores MAX_DATA_DISPLAY_SIZE2950 when large number of blobs requested2951 fetches the blobs in batches2952 .batch_metadata2953 returns an empty data attribute2954 .batch_lfs_pointers2955 returns a list of Gitlab::Git::Blob2956 accepts blob IDs as a lazy enumerator2957 handles empty list of IDs gracefully2958 silently ignores non lfs objects2959 avoids loading large blobs into memory2960 encoding2961 file with russian text2962 has the correct blob attributes2963 file with Japanese text2964 has the correct blob attributes2965 file with ISO-8859 text2966 has the correct blob attributes2967 mode2968 file regular2969 is expected to eq "regex.rb"2970 is expected to eq "files/ruby/regex.rb"2971 is expected to eq 12002972 is expected to eq "100644"2973 file binary2974 is expected to eq "ls"2975 is expected to eq "files/executables/ls"2976 is expected to eq 232977 is expected to eq "100755"2978 file symlink to regular2979 is expected to eq "symlink"2980 is expected to eq "symlink"2981 is expected to eq 62982 is expected to eq "120000"2983 lfs_pointers2984 file a valid lfs pointer2985 is expected to eq true2986 is expected to eq "96f74c6fe7a2979eefb9ec74a5dfc6888fb25543cf99b77586b79afea1da6f97"2987 is expected to eq 12196962988 is expected to eq "ff0ab3afd1616ff78d0331865d922df103b64cf0"2989 is expected to eq "emoji.png"2990 is expected to eq "files/images/emoji.png"2991 is expected to eq 1322992 is expected to eq "100644"2993 #load_all_data!2994 loads missing data2995 with a fully loaded blob2996 doesn't perform any loading2997 #truncated?2998 when blob.size is nil2999 returns false3000 when blob.data is missing3001 returns false3002 when the blob is truncated3003 returns true3004 when the blob is untruncated3005 returns false3006 metrics3007 defines :gitlab_blob_truncated_true counter3008 defines :gitlab_blob_truncated_false counter3009 defines :gitlab_blob_size histogram3010 #lines3011 when the encoding cannot be detected3012 successfully splits the data3013MergeRequestTargetProjectFinder3014 public projects3015 behaves like finding related projects3016 finds sibling projects and base project3017 does not include projects that have merge requests turned off by default3018 includes projects that have merge requests turned off by default with a more-permissive project feature3019 does not contain archived projects3020 does not include routes by default3021 includes routes when requested3022 private projects3023 only finds the projects the user is a member of3024 when the user is a member of all projects3025 behaves like finding related projects3026 finds sibling projects and base project3027 does not include projects that have merge requests turned off by default3028 includes projects that have merge requests turned off by default with a more-permissive project feature3029 does not contain archived projects3030 does not include routes by default3031 includes routes when requested3032 searching3033 returns all projects with empty search3034 returns forked project with search string3035 returns no projects with search for project that does no exist3036User TokenAuthenticatable3037 behaves like TokenAuthenticatable3038 dynamically defined methods3039 is expected to respond to #find_by_feed_token3040 is expected to respond to #ensure_feed_token3041 is expected to respond to #set_feed_token3042 is expected to respond to #reset_feed_token!3043 SensitiveSerializableHash3044 includes the token field in list of sensitive attributes prevented from serialization3045 ensures authentication token3046 is expected to be a kind of String3047ApplicationSetting TokenAuthenticatable3048 behaves like TokenAuthenticatable3049 dynamically defined methods3050 is expected to respond to #find_by_runners_registration_token3051 is expected to respond to #ensure_runners_registration_token3052 is expected to respond to #set_runners_registration_token3053 is expected to respond to #reset_runners_registration_token!3054 SensitiveSerializableHash3055 includes the token field in list of sensitive attributes prevented from serialization3056 generating new token3057 token is not generated yet3058 token field accessor3059 is expected not to be blank3060 ensure_runners_registration_token3061 is expected to be a kind of String3062 is expected not to be blank3063 does not persist token3064 ensure_runners_registration_token!3065 persists new token as an encrypted string3066 does not persist token in a clear text3067 token is generated3068 persists a new token3069 setting new token3070 is expected to eq "0123456789"3071 multiple token fields3072 is expected to respond to #ensure_runners_registration_token3073 is expected to respond to #ensure_error_tracking_access_token3074 is expected to respond to #ensure_yet_another_token3075 setting same token field multiple times3076 raises error3077PersonalAccessToken TokenAuthenticatable3078 .find_by_token3079 finds the token3080 #set_token3081 sets new token3082 #ensure_token3083 token_digest does not exist3084 behaves like changes personal access token3085 sets new token3086 token_digest already generated3087 behaves like does not change personal access token3088 sets new token3089 #ensure_token!3090 token_digest does not exist3091 behaves like changes personal access token3092 sets new token3093 token_digest already generated3094 behaves like does not change personal access token3095 sets new token3096 #reset_token!3097 token_digest does not exist3098 behaves like changes personal access token3099 sets new token3100 token_digest already generated3101 behaves like changes personal access token3102 sets new token3103Ci::Build TokenAuthenticatable3104 behaves like TokenAuthenticatable3105 dynamically defined methods3106 is expected to respond to #find_by_token3107 is expected to respond to #ensure_token3108 is expected to respond to #set_token3109 is expected to respond to #reset_token!3110 SensitiveSerializableHash3111 includes the token field in list of sensitive attributes prevented from serialization3112 generating new token3113 token is not generated yet3114 token field accessor3115 does not generate a token when saving a build3116 ensure_token3117 is expected to be a kind of String3118 is expected not to be blank3119 does not persist token3120 ensure_token!3121 persists a new token3122 persists new token as an encrypted string3123 does not persist a token in a clear text3124 #reset_token!3125 persists a new token3126 setting a new token3127 returns the token3128 writes a new encrypted token3129 does not write a new cleartext token3130 #token_with_expiration3131 #expirable?3132 is expected to eq false3133Ci::Runner TokenAuthenticatable3134 #token_expired?3135 when runner has no token expiration3136 is expected to eq false3137 when runner token is not expired3138 is expected to eq false3139 when runner token is expired3140 is expected to eq true3141 #token_with_expiration3142 #token3143 is expected to eq "rYpe4ZHqJVyyPjtzmFxk"3144 #token_expires_at3145 is expected to eq 2023-10-20 08:47:10.184147863 +00003146 #expirable?3147 is expected to eq true3148 .find_by_token3149 when runner has no token expiration3150 is expected to eq #<Ci::Runner id: 71, token: nil, created_at: "2023-10-20 08:47:05.167510984 +0000", updated_at: "2023...at: nil, allowed_plans: [], registration_type: "registration_token", creator_id: nil, tag_list: nil>3151 when runner token is not expired3152 is expected to eq #<Ci::Runner id: 72, token: nil, created_at: "2023-10-20 08:47:05.179439683 +0000", updated_at: "2023... +0000", allowed_plans: [], registration_type: "registration_token", creator_id: nil, tag_list: nil>3153 when runner token is expired3154 is expected to be nil3155Project TokenAuthenticatable3156 behaves like prefixed token rotation3157 ensure_runners_token3158 token is not set3159 generates a new token3160 token is set, but does not match the prefix3161 generates a new token3162 token is set and matches prefix3163 leaves the token unchanged3164 ensure_runners_token!3165 token is not set3166 generates a new token3167 token is set, but does not match the prefix3168 generates a new token3169 token is set and matches prefix3170 leaves the token unchanged3171Group TokenAuthenticatable3172 behaves like prefixed token rotation3173 ensure_runners_token3174 token is not set3175 generates a new token3176 token is set, but does not match the prefix3177 generates a new token3178 token is set and matches prefix3179 leaves the token unchanged3180 ensure_runners_token!3181 token is not set3182 generates a new token3183 token is set, but does not match the prefix3184 generates a new token3185 token is set and matches prefix3186 leaves the token unchanged3187ResourceLabelEvent3188 behaves like having unique enum values3189 has unique values in "action"3190 behaves like a resource event3191 importable3192 is expected to respond to #importing?3193 is expected to respond to #imported?3194 validations3195 is expected not to allow :user to be ‹nil›3196 when importing3197 is expected to allow :user to be ‹nil›3198 associations3199 is expected to belong to user required: false3200 .created_after3201 returns the expected events3202 returns no events if time is after last record time3203 behaves like a resource event for issues3204 associations3205 is expected to belong to issue required: false3206 .by_issue3207 returns the expected records for an issue with events3208 returns the expected records for an issue with no events3209 .by_issue_ids3210 returns the expected events3211 .by_created_at_earlier_or_equal_to3212 returns the expected events3213 returns the expected events3214 #issuable3215 returns the expected issuable3216 behaves like a resource event for merge requests3217 associations3218 is expected to belong to merge_request required: false3219 .by_merge_request3220 returns the expected records for an issue with events3221 returns the expected records for an issue with no events3222 #issuable3223 returns the expected issuable3224 on callbacks3225 does not trigger note created subscription3226 behaves like a note for work item resource event3227 builds synthetic note with correct synthetic_note_class3228 on callbacks3229 triggers note created subscription3230 associations3231 is expected to belong to label required: false3232 validations3233 is expected to be valid3234 Issuable validation3235 is invalid if issue_id and merge_request_id are missing3236 is invalid if issue_id and merge_request_id are set3237 is valid if only issue_id is set3238 is valid if only merge_request_id is set3239 callbacks3240 #broadcast_notes_changed3241 broadcasts note change on event save3242 broadcasts note change on event destroy3243 #outdated_markdown?3244 returns true if label is missing and reference is not empty3245 returns true if reference is not set yet3246 returns true if markdown is outdated3247 returns false if label and reference are set3248 .visible_to_user?3249 returns events with labels accessible by user3250 filters events with public project labels if issues and MRs are private3251 filters events with project labels not accessible by user3252 filters events with group labels not accessible by user3253 #discussion_id3254 generates different discussion ID for events created milliseconds apart3255 with multiple label events3256 builds synthetic note3257GroupMemberPolicy3258 with anonymous user3259 is expected to be allowed :read_group3260 design management is enabled3261 is expected to be allowed :read_design_activity3262 for a private group3263 is expected not to be allowed :destroy_group_member3264 for an internal group3265 is expected not to be allowed :destroy_group_member3266 with guest user, for own membership3267 is expected not to be allowed :update_group_member3268 is expected to be allowed :destroy_group_member3269 with guest user, for other membership3270 is expected not to be allowed :update_group_member3271 is expected to be allowed :read_group3272 for access requests3273 for own access request3274 is expected to be allowed :withdraw_member_access_request3275 for another user's access request3276 is expected not to be allowed :withdraw_member_access_request3277 for own, valid membership3278 is expected not to be allowed :withdraw_member_access_request3279 with bot user3280 is expected to be allowed :destroy_project_bot_member3281 with anonymous bot user3282 is expected not to be allowed :destroy_project_bot_member3283 with owner3284 with group with one owner3285 is expected not to be allowed :destroy_group_member3286 is expected to be allowed :read_group3287 with group with bot user owner3288 is expected not to be allowed :destroy_group_member3289 with group with more than one owner3290 is expected to be allowed :destroy_group_member3291 is expected not to be allowed :destroy_project_bot_member3292 with group with owners from a parent3293 when top-level group3294 with group sharing3295 is expected not to be allowed :destroy_group_member3296 is expected to be allowed :read_group3297 when subgroup3298 is expected to be allowed :destroy_group_member3299 is expected to be allowed :read_group3300 with blocked owner3301 is expected not to be allowed :destroy_group_member3302 is expected not to be allowed :read_group3303 with group with bot user owner3304 is expected not to be allowed :destroy_group_member3305 is expected not to be allowed :read_group3306 with group with more than one blocked owner3307 is expected to be allowed :destroy_group_member3308Gitlab::RelativePositioning::ItemContext3309 there are gaps at the start and end3310 is always possible to find a gap3311 index: 43312 is possible to shift_right, which will consume the gap at the end3313 is possible to create_space_right, which will move the gap to immediately after3314 is possible to shift_left, which will consume the gap at the start3315 is possible to create_space_left, which will move the gap to immediately before3316 index: 33317 is possible to shift_right, which will consume the gap at the end3318 is possible to create_space_right, which will move the gap to immediately after3319 is possible to shift_left, which will consume the gap at the start3320 is possible to create_space_left, which will move the gap to immediately before3321 index: 23322 is possible to shift_right, which will consume the gap at the end3323 is possible to create_space_right, which will move the gap to immediately after3324 is possible to shift_left, which will consume the gap at the start3325 is possible to create_space_left, which will move the gap to immediately before3326 index: 13327 is possible to shift_right, which will consume the gap at the end3328 is possible to create_space_right, which will move the gap to immediately after3329 is possible to shift_left, which will consume the gap at the start3330 is possible to create_space_left, which will move the gap to immediately before3331 index: 03332 is possible to shift_right, which will consume the gap at the end3333 is possible to create_space_right, which will move the gap to immediately after3334 is possible to shift_left, which will consume the gap at the start3335 is possible to create_space_left, which will move the gap to immediately before3336 there is a gap of multiple spaces3337 is impossible to move the last element to the right3338 is impossible to move the first element to the left3339 is possible to move the last element to the left3340 is possible to move the first element to the right3341 is possible to find the gap from the right3342 is possible to find the gap from the left3343 there are several free spaces3344 current_pos: 1023345 finds the closest gap3346 finds the neighbours3347 finds the next relative_positions3348 finds the min/max positions3349 finds the min/max siblings3350 current_pos: 1043351 finds the closest gap3352 finds the neighbours3353 finds the next relative_positions3354 finds the min/max positions3355 finds the min/max siblings3356 current_pos: 1063357 finds the closest gap3358 finds the neighbours3359 finds the next relative_positions3360 finds the min/max positions3361 finds the min/max siblings3362 there is at least one free space3363 free_space: 1013364 can always find a gap before if there is space to the left3365 can always find a gap after if there is space to the right3366 free_space: 1023367 can always find a gap before if there is space to the left3368 can always find a gap after if there is space to the right3369 free_space: 1033370 can always find a gap before if there is space to the left3371 can always find a gap after if there is space to the right3372 free_space: 1043373 can always find a gap before if there is space to the left3374 can always find a gap after if there is space to the right3375 free_space: 1053376 can always find a gap before if there is space to the left3377 can always find a gap after if there is space to the right3378 free_space: 1063379 can always find a gap before if there is space to the left3380 can always find a gap after if there is space to the right3381 free_space: 1073382 can always find a gap before if there is space to the left3383 can always find a gap after if there is space to the right3384 #at_position3385 finds the item at the specified position3386 raises InvalidPosition when the item cannot be found3387Ci::BuildDependencies3388 for local dependencies3389 jobs from previous stages3390 when job is in the first stage3391 is expected to be empty3392 when job is in the second stage3393 contains all jobs from the first stage3394 when job is in the last stage3395 contains all jobs from all previous stages3396 when a job is retried3397 contains the retried job instead of the original one3398 when needs refer to jobs from the same stage3399 is expected to contain exactly #<Ci::Build status: "pending", finished_at: nil, created_at: "2023-10-20 08:50:29.000000000 +0000", u...tage", id: 756, stage_id: 251, partition_id: 100, auto_canceled_by_partition_id: 100, tag_list: nil>3400 jobs from specified dependencies3401 when dependencies are defined3402 is expected to contain exactly #<Ci::Build status: "success", finished_at: "2023-10-20 08:53:29.000000000 +0000", created_at: "2023-...tage", id: 762, stage_id: 253, partition_id: 100, auto_canceled_by_partition_id: 100, tag_list: nil> and #<Ci::Build status: "pending", finished_at: nil, created_at: "2023-10-20 08:50:29.000000000 +0000", u...tage", id: 761, stage_id: 254, partition_id: 100, auto_canceled_by_partition_id: 100, tag_list: nil>3403 when needs are defined3404 is expected to contain exactly #<Ci::Build status: "pending", finished_at: nil, created_at: "2023-10-20 08:50:29.000000000 +0000", u...tage", id: 764, stage_id: 255, partition_id: 100, auto_canceled_by_partition_id: 100, tag_list: nil>, #<Ci::Build status: "success", finished_at: "2023-10-20 08:53:29.000000000 +0000", created_at: "2023-...tage", id: 767, stage_id: 256, partition_id: 100, auto_canceled_by_partition_id: 100, tag_list: nil>, and #<Ci::Build status: "pending", finished_at: nil, created_at: "2023-10-20 08:50:29.000000000 +0000", u...tage", id: 766, stage_id: 257, partition_id: 100, auto_canceled_by_partition_id: 100, tag_list: nil>3405 when need artifacts are defined3406 is expected to contain exactly #<Ci::Build status: "pending", finished_at: nil, created_at: "2023-10-20 08:50:29.000000000 +0000", u...tage", id: 769, stage_id: 258, partition_id: 100, auto_canceled_by_partition_id: 100, tag_list: nil> and #<Ci::Build status: "pending", finished_at: nil, created_at: "2023-10-20 08:50:29.000000000 +0000", u...tage", id: 771, stage_id: 260, partition_id: 100, auto_canceled_by_partition_id: 100, tag_list: nil>3407 when needs and dependencies are defined3408 is expected to contain exactly #<Ci::Build status: "success", finished_at: "2023-10-20 08:53:29.000000000 +0000", created_at: "2023-...tage", id: 777, stage_id: 262, partition_id: 100, auto_canceled_by_partition_id: 100, tag_list: nil> and #<Ci::Build status: "pending", finished_at: nil, created_at: "2023-10-20 08:50:29.000000000 +0000", u...tage", id: 776, stage_id: 263, partition_id: 100, auto_canceled_by_partition_id: 100, tag_list: nil>3409 when needs and dependencies contradict3410 returns only the intersection3411 when nor dependencies or needs are defined3412 returns the jobs from previous stages3413 for cross_pipeline dependencies3414 when dependency specifications are valid3415 when pipeline exists in the hierarchy3416 when job exists3417 is expected to contain exactly #<Ci::Build status: "success", finished_at: "2023-10-20 08:53:29.000000000 +0000", created_at: "2023-...tage", id: 794, stage_id: 270, partition_id: 100, auto_canceled_by_partition_id: 100, tag_list: nil>3418 is expected to be valid3419 when pipeline and job are specified via variables3420 is expected to contain exactly #<Ci::Build status: "success", finished_at: "2023-10-20 08:53:29.000000000 +0000", created_at: "2023-...tage", id: 809, stage_id: 278, partition_id: 100, auto_canceled_by_partition_id: 100, tag_list: nil>3421 is expected to be valid3422 when same job names exist in other pipelines in the hierarchy3423 returns a limited number of dependencies with the right match3424 when job does not exist3425 is expected to be empty3426 is expected not to be valid3427 when pipeline does not exist3428 is expected to be empty3429 is expected not to be valid3430 when jobs exist in different pipelines in the hierarchy3431 when pipeline and jobs dependencies are mismatched3432 is expected to be empty3433 is expected not to be valid3434 when dependencies contain a valid pair3435 filters out the invalid ones3436 is expected not to be valid3437 when job and pipeline exist outside the hierarchy3438 ignores jobs outside the pipeline hierarchy3439 is expected not to be valid3440 when current pipeline is specified3441 ignores jobs from the current pipeline as simple needs should be used instead3442 is expected not to be valid3443 when artifacts:false3444 is expected to be empty3445 is expected to be valid3446 #all3447 returns the union of all local dependencies and any cross project dependencies3448 #valid?3449 is expected to eq true3450 when a local dependency is invalid3451 is expected to eq false3452Backup::Manager3453 #run_create_task3454 calls the named task3455 disabled3456 informs the user3457 skipped3458 informs the user3459 #run_restore_task3460 calls the named task3461 disabled3462 informs the user3463 pre_restore_warning3464 displays and waits for the user3465 does not continue when the user quits3466 post_restore_warning3467 displays and waits for the user3468 does not continue when the user quits3469 #create3470 creates a backup tar3471 when BACKUP is set3472 uses the given value as tar file name3473 tar fails3474 logs a failure3475 when SKIP env is set3476 executes tar3477 when the destination is optional3478 executes tar3479 many backup files3480 when keep_time is zero3481 removes no files3482 prints a skipped message3483 when no valid file is found3484 removes no files3485 prints a done message3486 when there are no files older than keep_time3487 removes no files3488 prints a done message3489 when keep_time is set to remove files3490 removes matching files with a human-readable versioned timestamp3491 removes matching files with a human-readable versioned timestamp with tagged EE3492 removes matching files with a human-readable non-versioned timestamp3493 removes matching files without a human-readable timestamp3494 does not remove files that are not old enough3495 does not remove non-matching files3496 prints a done message3497 when removing a file fails3498 removes the remaining expected files3499 sets the correct removed count3500 prints the error from file that could not be removed3501 cloud storage3502 skipped upload3503 informs the user3504 target path3505 uses the tar filename by default3506 adds the DIRECTORY environment variable if present3507 with AWS with server side encryption3508 with SSE-S3 without using storage_options3509 sets encryption attributes3510 with SSE-C (customer-provided keys) options3511 sets encryption attributes3512 with SSE-KMS options3513 sets encryption attributes3514 with Google provider3515 does not attempt to set ACL3516 with AzureRM provider3517 loads the provider3518 tar skipped3519 creates a non-tarred backup3520 incremental3521 when there are no backup files in the directory3522 fails the operation and prints an error3523 when there are two backup files in the directory and BACKUP variable is not set3524 prints the list of available backups3525 fails the operation and prints an error3526 when BACKUP variable is set to a non-existing file3527 fails the operation and prints an error3528 when BACKUP variable is set to a correct file3529 unpacks and packs the backup3530 untar fails3531 logs a failure3532 tar fails3533 logs a failure3534 on version mismatch3535 stops the process3536 when PREVIOUS_BACKUP variable is set to a non-existing file3537 fails the operation and prints an error3538 when PREVIOUS_BACKUP variable is set to a correct file3539 unpacks and packs the backup3540 untar fails3541 logs a failure3542 tar fails3543 logs a failure3544 on version mismatch3545 stops the process3546 when there is a non-tarred backup in the directory3547 updates the non-tarred backup3548 on version mismatch3549 stops the process3550 #restore3551 when there are no backup files in the directory3552 fails the operation and prints an error3553 when there are two backup files in the directory and BACKUP variable is not set3554 prints the list of available backups3555 fails the operation and prints an error3556 when BACKUP variable is set to a non-existing file3557 fails the operation and prints an error3558 when BACKUP variable is set to a correct file3559 unpacks the file3560 tar fails3561 logs a failure3562 on version mismatch3563 stops the process3564 when there is a non-tarred backup in the directory3565 selects the non-tarred backup to restore from3566 on version mismatch3567 stops the process3568Milestones::TransferService3569 #execute3570 when old_group is present3571 without existing milestone at the new group level3572 recreates the missing group milestones at project level3573 applies new project milestone to issues with group milestone3574 deletes milestone counters cache for both milestones3575 does not apply new project milestone to issues with project milestone3576 applies new project milestone to merge_requests with group milestone3577 does not apply new project milestone to issuables with project milestone3578 does not recreate missing group milestones that are not applied to issues or merge requests3579 when milestone is from an ancestor group3580 recreates the missing group milestones at project level3581 when find_or_create_milestone returns nil3582 removes issues group milestone3583 removes merge requests group milestone3584 with existing milestone at the new group level3585 does not create a new milestone3586 applies existing milestone to issues with group milestone3587 applies existing milestone to merge_requests with group milestone3588 when old_group is not present3589 returns nil3590WorkItems::ParentLinks::CreateService3591 #execute3592 when the reference list is empty3593 behaves like returns not found error3594 returns error3595 no relationship is created3596 when work item not found3597 behaves like returns not found error3598 returns error3599 no relationship is created3600 when user has no permission to link work items3601 behaves like returns not found error3602 returns error3603 no relationship is created3604 child and parent are the same work item3605 no relationship is created3606 when adjacent is already in place3607 adjacent_position: -100, expected_order: lazy { [adjacent, current_item] }3608 sets relative positions3609 adjacent_position: 0, expected_order: lazy { [adjacent, current_item] }3610 sets relative positions3611 adjacent_position: 100, expected_order: lazy { [adjacent, current_item] }3612 sets relative positions3613 when there are tasks to relate3614 creates relationships3615 returns success status and created links3616 creates notes and records the events3617 when note creation fails for some reason3618 still records the link event3619 still records the link event3620 when task is already assigned3621 creates links only for non related tasks3622 when there are invalid children3623 creates links only for valid children3624 returns error status3625 creates notes for valid links3626 when parent type is invalid3627 returns error status3628 when max depth is reached3629 returns error status3630 when params include invalid ids3631 creates links only for valid IDs3632 when user is a guest3633 behaves like returns not found error3634 returns error3635 no relationship is created3636 when user is a guest assigned to the work item3637 behaves like returns not found error3638 returns error3639 no relationship is created3640Packages::Nuget::SearchService3641 #execute3642 with project3643 behaves like handling all the conditions3644 is expected to contain exactly #<Packages::Package id: 237, project_id: 647, created_at: "2023-10-20 08:49:23.284079000 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 238, project_id: 647, created_at: "2023-10-20 08:49:23.302810952 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 239, project_id: 647, created_at: "2023-10-20 08:49:23.320026621 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 240, project_id: 647, created_at: "2023-10-20 08:49:23.336499260 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 241, project_id: 647, created_at: "2023-10-20 08:49:23.355225599 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 242, project_id: 647, created_at: "2023-10-20 08:49:23.373709338 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 243, project_id: 647, created_at: "2023-10-20 08:49:23.391960257 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 244, project_id: 647, created_at: "2023-10-20 08:49:23.408247406 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 245, project_id: 647, created_at: "2023-10-20 08:49:23.427665125 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 246, project_id: 647, created_at: "2023-10-20 08:49:23.445517094 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, and #<Packages::Package id: 247, project_id: 647, created_at: "2023-10-20 08:49:23.464081612 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>3645 with a smaller per page count3646 is expected to contain exactly #<Packages::Package id: 237, project_id: 647, created_at: "2023-10-20 08:49:23.284079000 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 238, project_id: 647, created_at: "2023-10-20 08:49:23.302810952 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 239, project_id: 647, created_at: "2023-10-20 08:49:23.320026621 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 240, project_id: 647, created_at: "2023-10-20 08:49:23.336499260 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 241, project_id: 647, created_at: "2023-10-20 08:49:23.355225599 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, and #<Packages::Package id: 242, project_id: 647, created_at: "2023-10-20 08:49:23.373709338 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>3647 with 0 per page count3648 is expected to contain exactly3649 with a negative per page count3650 is expected to raise ArgumentError with "negative per_page"3651 with a padding3652 is expected to contain exactly #<Packages::Package id: 243, project_id: 647, created_at: "2023-10-20 08:49:23.391960257 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 244, project_id: 647, created_at: "2023-10-20 08:49:23.408247406 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 245, project_id: 647, created_at: "2023-10-20 08:49:23.427665125 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 246, project_id: 647, created_at: "2023-10-20 08:49:23.445517094 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, and #<Packages::Package id: 247, project_id: 647, created_at: "2023-10-20 08:49:23.464081612 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>3653 with a too big padding3654 is expected to contain exactly3655 with a negative padding3656 is expected to raise ArgumentError with "negative padding"3657 with search term3658 is expected to contain exactly #<Packages::Package id: 237, project_id: 647, created_at: "2023-10-20 08:49:23.284079000 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 238, project_id: 647, created_at: "2023-10-20 08:49:23.302810952 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 239, project_id: 647, created_at: "2023-10-20 08:49:23.320026621 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 240, project_id: 647, created_at: "2023-10-20 08:49:23.336499260 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 241, project_id: 647, created_at: "2023-10-20 08:49:23.355225599 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 242, project_id: 647, created_at: "2023-10-20 08:49:23.373709338 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 243, project_id: 647, created_at: "2023-10-20 08:49:23.391960257 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 244, project_id: 647, created_at: "2023-10-20 08:49:23.408247406 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 245, project_id: 647, created_at: "2023-10-20 08:49:23.427665125 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 246, project_id: 647, created_at: "2023-10-20 08:49:23.445517094 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, and #<Packages::Package id: 247, project_id: 647, created_at: "2023-10-20 08:49:23.464081612 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>3659 with nil search term3660 is expected to contain exactly #<Packages::Package id: 237, project_id: 647, created_at: "2023-10-20 08:49:23.284079000 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 238, project_id: 647, created_at: "2023-10-20 08:49:23.302810952 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 239, project_id: 647, created_at: "2023-10-20 08:49:23.320026621 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 240, project_id: 647, created_at: "2023-10-20 08:49:23.336499260 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 241, project_id: 647, created_at: "2023-10-20 08:49:23.355225599 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 242, project_id: 647, created_at: "2023-10-20 08:49:23.373709338 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 243, project_id: 647, created_at: "2023-10-20 08:49:23.391960257 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 244, project_id: 647, created_at: "2023-10-20 08:49:23.408247406 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 245, project_id: 647, created_at: "2023-10-20 08:49:23.427665125 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 246, project_id: 647, created_at: "2023-10-20 08:49:23.445517094 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 247, project_id: 647, created_at: "2023-10-20 08:49:23.464081612 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, and #<Packages::Package id: 248, project_id: 647, created_at: "2023-10-20 08:49:23.485085471 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>3661 with empty search term3662 is expected to contain exactly #<Packages::Package id: 237, project_id: 647, created_at: "2023-10-20 08:49:23.284079000 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 238, project_id: 647, created_at: "2023-10-20 08:49:23.302810952 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 239, project_id: 647, created_at: "2023-10-20 08:49:23.320026621 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 240, project_id: 647, created_at: "2023-10-20 08:49:23.336499260 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 241, project_id: 647, created_at: "2023-10-20 08:49:23.355225599 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 242, project_id: 647, created_at: "2023-10-20 08:49:23.373709338 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 243, project_id: 647, created_at: "2023-10-20 08:49:23.391960257 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 244, project_id: 647, created_at: "2023-10-20 08:49:23.408247406 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 245, project_id: 647, created_at: "2023-10-20 08:49:23.427665125 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 246, project_id: 647, created_at: "2023-10-20 08:49:23.445517094 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 247, project_id: 647, created_at: "2023-10-20 08:49:23.464081612 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, and #<Packages::Package id: 248, project_id: 647, created_at: "2023-10-20 08:49:23.485085471 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>3663 with non-displayable packages3664 is expected to contain exactly #<Packages::Package id: 238, project_id: 647, created_at: "2023-10-20 08:49:23.302810952 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 239, project_id: 647, created_at: "2023-10-20 08:49:23.320026621 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 240, project_id: 647, created_at: "2023-10-20 08:49:23.336499260 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 241, project_id: 647, created_at: "2023-10-20 08:49:23.355225599 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 242, project_id: 647, created_at: "2023-10-20 08:49:23.373709338 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 243, project_id: 647, created_at: "2023-10-20 08:49:23.391960257 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 244, project_id: 647, created_at: "2023-10-20 08:49:23.408247406 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 245, project_id: 647, created_at: "2023-10-20 08:49:23.427665125 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 246, project_id: 647, created_at: "2023-10-20 08:49:23.445517094 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 247, project_id: 647, created_at: "2023-10-20 08:49:23.464081612 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, and #<Packages::Package id: 248, project_id: 647, created_at: "2023-10-20 08:49:23.485085471 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>3665 with prefix search term3666 is expected to contain exactly #<Packages::Package id: 237, project_id: 647, created_at: "2023-10-20 08:49:23.284079000 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 238, project_id: 647, created_at: "2023-10-20 08:49:23.302810952 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 239, project_id: 647, created_at: "2023-10-20 08:49:23.320026621 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 240, project_id: 647, created_at: "2023-10-20 08:49:23.336499260 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 241, project_id: 647, created_at: "2023-10-20 08:49:23.355225599 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 242, project_id: 647, created_at: "2023-10-20 08:49:23.373709338 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 243, project_id: 647, created_at: "2023-10-20 08:49:23.391960257 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 244, project_id: 647, created_at: "2023-10-20 08:49:23.408247406 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 245, project_id: 647, created_at: "2023-10-20 08:49:23.427665125 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 246, project_id: 647, created_at: "2023-10-20 08:49:23.445517094 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, and #<Packages::Package id: 247, project_id: 647, created_at: "2023-10-20 08:49:23.464081612 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>3667 with suffix search term3668 is expected to contain exactly #<Packages::Package id: 243, project_id: 647, created_at: "2023-10-20 08:49:23.391960257 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 244, project_id: 647, created_at: "2023-10-20 08:49:23.408247406 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 245, project_id: 647, created_at: "2023-10-20 08:49:23.427665125 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 246, project_id: 647, created_at: "2023-10-20 08:49:23.445517094 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, and #<Packages::Package id: 247, project_id: 647, created_at: "2023-10-20 08:49:23.464081612 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>3669 with pre release packages3670 including them3671 is expected to contain exactly #<Packages::Package id: 237, project_id: 647, created_at: "2023-10-20 08:49:23.284079000 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 238, project_id: 647, created_at: "2023-10-20 08:49:23.302810952 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 239, project_id: 647, created_at: "2023-10-20 08:49:23.320026621 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 240, project_id: 647, created_at: "2023-10-20 08:49:23.336499260 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 241, project_id: 647, created_at: "2023-10-20 08:49:23.355225599 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 242, project_id: 647, created_at: "2023-10-20 08:49:23.373709338 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 243, project_id: 647, created_at: "2023-10-20 08:49:23.391960257 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 244, project_id: 647, created_at: "2023-10-20 08:49:23.408247406 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 245, project_id: 647, created_at: "2023-10-20 08:49:23.427665125 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 246, project_id: 647, created_at: "2023-10-20 08:49:23.445517094 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 247, project_id: 647, created_at: "2023-10-20 08:49:23.464081612 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, and #<Packages::Package id: 251, project_id: 647, created_at: "2023-10-20 08:49:27.490738170 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>3672 excluding them3673 is expected to contain exactly #<Packages::Package id: 237, project_id: 647, created_at: "2023-10-20 08:49:23.284079000 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 238, project_id: 647, created_at: "2023-10-20 08:49:23.302810952 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 239, project_id: 647, created_at: "2023-10-20 08:49:23.320026621 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 240, project_id: 647, created_at: "2023-10-20 08:49:23.336499260 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 241, project_id: 647, created_at: "2023-10-20 08:49:23.355225599 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 242, project_id: 647, created_at: "2023-10-20 08:49:23.373709338 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 243, project_id: 647, created_at: "2023-10-20 08:49:23.391960257 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 244, project_id: 647, created_at: "2023-10-20 08:49:23.408247406 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 245, project_id: 647, created_at: "2023-10-20 08:49:23.427665125 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 246, project_id: 647, created_at: "2023-10-20 08:49:23.445517094 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, and #<Packages::Package id: 247, project_id: 647, created_at: "2023-10-20 08:49:23.464081612 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>3674 when mixed with release versions3675 is expected to contain exactly #<Packages::Package id: 237, project_id: 647, created_at: "2023-10-20 08:49:23.284079000 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 238, project_id: 647, created_at: "2023-10-20 08:49:23.302810952 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 239, project_id: 647, created_at: "2023-10-20 08:49:23.320026621 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 240, project_id: 647, created_at: "2023-10-20 08:49:23.336499260 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 241, project_id: 647, created_at: "2023-10-20 08:49:23.355225599 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 242, project_id: 647, created_at: "2023-10-20 08:49:23.373709338 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 243, project_id: 647, created_at: "2023-10-20 08:49:23.391960257 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 244, project_id: 647, created_at: "2023-10-20 08:49:23.408247406 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 245, project_id: 647, created_at: "2023-10-20 08:49:23.427665125 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 246, project_id: 647, created_at: "2023-10-20 08:49:23.445517094 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 247, project_id: 647, created_at: "2023-10-20 08:49:23.464081612 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, and #<Packages::Package id: 252, project_id: 647, created_at: "2023-10-20 08:49:28.053986896 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>3676 with subgroup3677 behaves like handling all the conditions3678 is expected to contain exactly #<Packages::Package id: 237, project_id: 647, created_at: "2023-10-20 08:49:23.284079000 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 238, project_id: 647, created_at: "2023-10-20 08:49:23.302810952 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 239, project_id: 647, created_at: "2023-10-20 08:49:23.320026621 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 240, project_id: 647, created_at: "2023-10-20 08:49:23.336499260 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 241, project_id: 647, created_at: "2023-10-20 08:49:23.355225599 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 242, project_id: 647, created_at: "2023-10-20 08:49:23.373709338 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 243, project_id: 647, created_at: "2023-10-20 08:49:23.391960257 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 244, project_id: 647, created_at: "2023-10-20 08:49:23.408247406 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 245, project_id: 647, created_at: "2023-10-20 08:49:23.427665125 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 246, project_id: 647, created_at: "2023-10-20 08:49:23.445517094 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, and #<Packages::Package id: 247, project_id: 647, created_at: "2023-10-20 08:49:23.464081612 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>3679 with a smaller per page count3680 is expected to contain exactly #<Packages::Package id: 237, project_id: 647, created_at: "2023-10-20 08:49:23.284079000 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 238, project_id: 647, created_at: "2023-10-20 08:49:23.302810952 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 239, project_id: 647, created_at: "2023-10-20 08:49:23.320026621 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 240, project_id: 647, created_at: "2023-10-20 08:49:23.336499260 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 241, project_id: 647, created_at: "2023-10-20 08:49:23.355225599 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, and #<Packages::Package id: 242, project_id: 647, created_at: "2023-10-20 08:49:23.373709338 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>3681 with 0 per page count3682 is expected to contain exactly3683 with a negative per page count3684 is expected to raise ArgumentError with "negative per_page"3685 with a padding3686 is expected to contain exactly #<Packages::Package id: 243, project_id: 647, created_at: "2023-10-20 08:49:23.391960257 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 244, project_id: 647, created_at: "2023-10-20 08:49:23.408247406 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 245, project_id: 647, created_at: "2023-10-20 08:49:23.427665125 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 246, project_id: 647, created_at: "2023-10-20 08:49:23.445517094 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, and #<Packages::Package id: 247, project_id: 647, created_at: "2023-10-20 08:49:23.464081612 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>3687 with a too big padding3688 is expected to contain exactly3689 with a negative padding3690 is expected to raise ArgumentError with "negative padding"3691 with search term3692 is expected to contain exactly #<Packages::Package id: 237, project_id: 647, created_at: "2023-10-20 08:49:23.284079000 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 238, project_id: 647, created_at: "2023-10-20 08:49:23.302810952 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 239, project_id: 647, created_at: "2023-10-20 08:49:23.320026621 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 240, project_id: 647, created_at: "2023-10-20 08:49:23.336499260 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 241, project_id: 647, created_at: "2023-10-20 08:49:23.355225599 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 242, project_id: 647, created_at: "2023-10-20 08:49:23.373709338 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 243, project_id: 647, created_at: "2023-10-20 08:49:23.391960257 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 244, project_id: 647, created_at: "2023-10-20 08:49:23.408247406 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 245, project_id: 647, created_at: "2023-10-20 08:49:23.427665125 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 246, project_id: 647, created_at: "2023-10-20 08:49:23.445517094 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, and #<Packages::Package id: 247, project_id: 647, created_at: "2023-10-20 08:49:23.464081612 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>3693 with nil search term3694 is expected to contain exactly #<Packages::Package id: 237, project_id: 647, created_at: "2023-10-20 08:49:23.284079000 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 238, project_id: 647, created_at: "2023-10-20 08:49:23.302810952 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 239, project_id: 647, created_at: "2023-10-20 08:49:23.320026621 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 240, project_id: 647, created_at: "2023-10-20 08:49:23.336499260 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 241, project_id: 647, created_at: "2023-10-20 08:49:23.355225599 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 242, project_id: 647, created_at: "2023-10-20 08:49:23.373709338 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 243, project_id: 647, created_at: "2023-10-20 08:49:23.391960257 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 244, project_id: 647, created_at: "2023-10-20 08:49:23.408247406 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 245, project_id: 647, created_at: "2023-10-20 08:49:23.427665125 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 246, project_id: 647, created_at: "2023-10-20 08:49:23.445517094 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 247, project_id: 647, created_at: "2023-10-20 08:49:23.464081612 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, and #<Packages::Package id: 248, project_id: 647, created_at: "2023-10-20 08:49:23.485085471 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>3695 with empty search term3696 is expected to contain exactly #<Packages::Package id: 237, project_id: 647, created_at: "2023-10-20 08:49:23.284079000 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 238, project_id: 647, created_at: "2023-10-20 08:49:23.302810952 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 239, project_id: 647, created_at: "2023-10-20 08:49:23.320026621 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 240, project_id: 647, created_at: "2023-10-20 08:49:23.336499260 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 241, project_id: 647, created_at: "2023-10-20 08:49:23.355225599 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 242, project_id: 647, created_at: "2023-10-20 08:49:23.373709338 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 243, project_id: 647, created_at: "2023-10-20 08:49:23.391960257 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 244, project_id: 647, created_at: "2023-10-20 08:49:23.408247406 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 245, project_id: 647, created_at: "2023-10-20 08:49:23.427665125 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 246, project_id: 647, created_at: "2023-10-20 08:49:23.445517094 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 247, project_id: 647, created_at: "2023-10-20 08:49:23.464081612 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, and #<Packages::Package id: 248, project_id: 647, created_at: "2023-10-20 08:49:23.485085471 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>3697 with non-displayable packages3698 is expected to contain exactly #<Packages::Package id: 238, project_id: 647, created_at: "2023-10-20 08:49:23.302810952 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 239, project_id: 647, created_at: "2023-10-20 08:49:23.320026621 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 240, project_id: 647, created_at: "2023-10-20 08:49:23.336499260 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 241, project_id: 647, created_at: "2023-10-20 08:49:23.355225599 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 242, project_id: 647, created_at: "2023-10-20 08:49:23.373709338 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 243, project_id: 647, created_at: "2023-10-20 08:49:23.391960257 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 244, project_id: 647, created_at: "2023-10-20 08:49:23.408247406 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 245, project_id: 647, created_at: "2023-10-20 08:49:23.427665125 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 246, project_id: 647, created_at: "2023-10-20 08:49:23.445517094 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 247, project_id: 647, created_at: "2023-10-20 08:49:23.464081612 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, and #<Packages::Package id: 248, project_id: 647, created_at: "2023-10-20 08:49:23.485085471 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>3699 with prefix search term3700 is expected to contain exactly #<Packages::Package id: 237, project_id: 647, created_at: "2023-10-20 08:49:23.284079000 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 238, project_id: 647, created_at: "2023-10-20 08:49:23.302810952 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 239, project_id: 647, created_at: "2023-10-20 08:49:23.320026621 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 240, project_id: 647, created_at: "2023-10-20 08:49:23.336499260 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 241, project_id: 647, created_at: "2023-10-20 08:49:23.355225599 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 242, project_id: 647, created_at: "2023-10-20 08:49:23.373709338 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 243, project_id: 647, created_at: "2023-10-20 08:49:23.391960257 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 244, project_id: 647, created_at: "2023-10-20 08:49:23.408247406 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 245, project_id: 647, created_at: "2023-10-20 08:49:23.427665125 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 246, project_id: 647, created_at: "2023-10-20 08:49:23.445517094 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, and #<Packages::Package id: 247, project_id: 647, created_at: "2023-10-20 08:49:23.464081612 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>3701 with suffix search term3702 is expected to contain exactly #<Packages::Package id: 243, project_id: 647, created_at: "2023-10-20 08:49:23.391960257 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 244, project_id: 647, created_at: "2023-10-20 08:49:23.408247406 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 245, project_id: 647, created_at: "2023-10-20 08:49:23.427665125 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 246, project_id: 647, created_at: "2023-10-20 08:49:23.445517094 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, and #<Packages::Package id: 247, project_id: 647, created_at: "2023-10-20 08:49:23.464081612 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>3703 with pre release packages3704 including them3705 is expected to contain exactly #<Packages::Package id: 237, project_id: 647, created_at: "2023-10-20 08:49:23.284079000 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 238, project_id: 647, created_at: "2023-10-20 08:49:23.302810952 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 239, project_id: 647, created_at: "2023-10-20 08:49:23.320026621 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 240, project_id: 647, created_at: "2023-10-20 08:49:23.336499260 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 241, project_id: 647, created_at: "2023-10-20 08:49:23.355225599 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 242, project_id: 647, created_at: "2023-10-20 08:49:23.373709338 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 243, project_id: 647, created_at: "2023-10-20 08:49:23.391960257 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 244, project_id: 647, created_at: "2023-10-20 08:49:23.408247406 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 245, project_id: 647, created_at: "2023-10-20 08:49:23.427665125 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 246, project_id: 647, created_at: "2023-10-20 08:49:23.445517094 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 247, project_id: 647, created_at: "2023-10-20 08:49:23.464081612 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, and #<Packages::Package id: 253, project_id: 647, created_at: "2023-10-20 08:49:32.725167565 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>3706 excluding them3707 is expected to contain exactly #<Packages::Package id: 237, project_id: 647, created_at: "2023-10-20 08:49:23.284079000 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 238, project_id: 647, created_at: "2023-10-20 08:49:23.302810952 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 239, project_id: 647, created_at: "2023-10-20 08:49:23.320026621 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 240, project_id: 647, created_at: "2023-10-20 08:49:23.336499260 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 241, project_id: 647, created_at: "2023-10-20 08:49:23.355225599 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 242, project_id: 647, created_at: "2023-10-20 08:49:23.373709338 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 243, project_id: 647, created_at: "2023-10-20 08:49:23.391960257 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 244, project_id: 647, created_at: "2023-10-20 08:49:23.408247406 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 245, project_id: 647, created_at: "2023-10-20 08:49:23.427665125 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 246, project_id: 647, created_at: "2023-10-20 08:49:23.445517094 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, and #<Packages::Package id: 247, project_id: 647, created_at: "2023-10-20 08:49:23.464081612 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>3708 when mixed with release versions3709 is expected to contain exactly #<Packages::Package id: 237, project_id: 647, created_at: "2023-10-20 08:49:23.284079000 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 238, project_id: 647, created_at: "2023-10-20 08:49:23.302810952 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 239, project_id: 647, created_at: "2023-10-20 08:49:23.320026621 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 240, project_id: 647, created_at: "2023-10-20 08:49:23.336499260 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 241, project_id: 647, created_at: "2023-10-20 08:49:23.355225599 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 242, project_id: 647, created_at: "2023-10-20 08:49:23.373709338 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 243, project_id: 647, created_at: "2023-10-20 08:49:23.391960257 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 244, project_id: 647, created_at: "2023-10-20 08:49:23.408247406 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 245, project_id: 647, created_at: "2023-10-20 08:49:23.427665125 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 246, project_id: 647, created_at: "2023-10-20 08:49:23.445517094 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 247, project_id: 647, created_at: "2023-10-20 08:49:23.464081612 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, and #<Packages::Package id: 254, project_id: 647, created_at: "2023-10-20 08:49:33.413637823 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>3710 with group3711 behaves like handling all the conditions3712 is expected to contain exactly #<Packages::Package id: 237, project_id: 647, created_at: "2023-10-20 08:49:23.284079000 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 238, project_id: 647, created_at: "2023-10-20 08:49:23.302810952 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 239, project_id: 647, created_at: "2023-10-20 08:49:23.320026621 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 240, project_id: 647, created_at: "2023-10-20 08:49:23.336499260 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 241, project_id: 647, created_at: "2023-10-20 08:49:23.355225599 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 242, project_id: 647, created_at: "2023-10-20 08:49:23.373709338 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 243, project_id: 647, created_at: "2023-10-20 08:49:23.391960257 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 244, project_id: 647, created_at: "2023-10-20 08:49:23.408247406 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 245, project_id: 647, created_at: "2023-10-20 08:49:23.427665125 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 246, project_id: 647, created_at: "2023-10-20 08:49:23.445517094 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, and #<Packages::Package id: 247, project_id: 647, created_at: "2023-10-20 08:49:23.464081612 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>3713 with a smaller per page count3714 is expected to contain exactly #<Packages::Package id: 237, project_id: 647, created_at: "2023-10-20 08:49:23.284079000 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 238, project_id: 647, created_at: "2023-10-20 08:49:23.302810952 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 239, project_id: 647, created_at: "2023-10-20 08:49:23.320026621 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 240, project_id: 647, created_at: "2023-10-20 08:49:23.336499260 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 241, project_id: 647, created_at: "2023-10-20 08:49:23.355225599 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, and #<Packages::Package id: 242, project_id: 647, created_at: "2023-10-20 08:49:23.373709338 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>3715 with 0 per page count3716 is expected to contain exactly3717 with a negative per page count3718 is expected to raise ArgumentError with "negative per_page"3719 with a padding3720 is expected to contain exactly #<Packages::Package id: 243, project_id: 647, created_at: "2023-10-20 08:49:23.391960257 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 244, project_id: 647, created_at: "2023-10-20 08:49:23.408247406 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 245, project_id: 647, created_at: "2023-10-20 08:49:23.427665125 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 246, project_id: 647, created_at: "2023-10-20 08:49:23.445517094 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, and #<Packages::Package id: 247, project_id: 647, created_at: "2023-10-20 08:49:23.464081612 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>3721 with a too big padding3722 is expected to contain exactly3723 with a negative padding3724 is expected to raise ArgumentError with "negative padding"3725 with search term3726 is expected to contain exactly #<Packages::Package id: 237, project_id: 647, created_at: "2023-10-20 08:49:23.284079000 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 238, project_id: 647, created_at: "2023-10-20 08:49:23.302810952 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 239, project_id: 647, created_at: "2023-10-20 08:49:23.320026621 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 240, project_id: 647, created_at: "2023-10-20 08:49:23.336499260 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 241, project_id: 647, created_at: "2023-10-20 08:49:23.355225599 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 242, project_id: 647, created_at: "2023-10-20 08:49:23.373709338 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 243, project_id: 647, created_at: "2023-10-20 08:49:23.391960257 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 244, project_id: 647, created_at: "2023-10-20 08:49:23.408247406 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 245, project_id: 647, created_at: "2023-10-20 08:49:23.427665125 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 246, project_id: 647, created_at: "2023-10-20 08:49:23.445517094 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, and #<Packages::Package id: 247, project_id: 647, created_at: "2023-10-20 08:49:23.464081612 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>3727 with nil search term3728 is expected to contain exactly #<Packages::Package id: 237, project_id: 647, created_at: "2023-10-20 08:49:23.284079000 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 238, project_id: 647, created_at: "2023-10-20 08:49:23.302810952 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 239, project_id: 647, created_at: "2023-10-20 08:49:23.320026621 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 240, project_id: 647, created_at: "2023-10-20 08:49:23.336499260 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 241, project_id: 647, created_at: "2023-10-20 08:49:23.355225599 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 242, project_id: 647, created_at: "2023-10-20 08:49:23.373709338 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 243, project_id: 647, created_at: "2023-10-20 08:49:23.391960257 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 244, project_id: 647, created_at: "2023-10-20 08:49:23.408247406 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 245, project_id: 647, created_at: "2023-10-20 08:49:23.427665125 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 246, project_id: 647, created_at: "2023-10-20 08:49:23.445517094 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 247, project_id: 647, created_at: "2023-10-20 08:49:23.464081612 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, and #<Packages::Package id: 248, project_id: 647, created_at: "2023-10-20 08:49:23.485085471 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>3729 with empty search term3730 is expected to contain exactly #<Packages::Package id: 237, project_id: 647, created_at: "2023-10-20 08:49:23.284079000 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 238, project_id: 647, created_at: "2023-10-20 08:49:23.302810952 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 239, project_id: 647, created_at: "2023-10-20 08:49:23.320026621 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 240, project_id: 647, created_at: "2023-10-20 08:49:23.336499260 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 241, project_id: 647, created_at: "2023-10-20 08:49:23.355225599 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 242, project_id: 647, created_at: "2023-10-20 08:49:23.373709338 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 243, project_id: 647, created_at: "2023-10-20 08:49:23.391960257 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 244, project_id: 647, created_at: "2023-10-20 08:49:23.408247406 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 245, project_id: 647, created_at: "2023-10-20 08:49:23.427665125 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 246, project_id: 647, created_at: "2023-10-20 08:49:23.445517094 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 247, project_id: 647, created_at: "2023-10-20 08:49:23.464081612 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, and #<Packages::Package id: 248, project_id: 647, created_at: "2023-10-20 08:49:23.485085471 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>3731 with non-displayable packages3732 is expected to contain exactly #<Packages::Package id: 238, project_id: 647, created_at: "2023-10-20 08:49:23.302810952 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 239, project_id: 647, created_at: "2023-10-20 08:49:23.320026621 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 240, project_id: 647, created_at: "2023-10-20 08:49:23.336499260 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 241, project_id: 647, created_at: "2023-10-20 08:49:23.355225599 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 242, project_id: 647, created_at: "2023-10-20 08:49:23.373709338 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 243, project_id: 647, created_at: "2023-10-20 08:49:23.391960257 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 244, project_id: 647, created_at: "2023-10-20 08:49:23.408247406 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 245, project_id: 647, created_at: "2023-10-20 08:49:23.427665125 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 246, project_id: 647, created_at: "2023-10-20 08:49:23.445517094 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 247, project_id: 647, created_at: "2023-10-20 08:49:23.464081612 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, and #<Packages::Package id: 248, project_id: 647, created_at: "2023-10-20 08:49:23.485085471 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>3733 with prefix search term3734 is expected to contain exactly #<Packages::Package id: 237, project_id: 647, created_at: "2023-10-20 08:49:23.284079000 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 238, project_id: 647, created_at: "2023-10-20 08:49:23.302810952 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 239, project_id: 647, created_at: "2023-10-20 08:49:23.320026621 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 240, project_id: 647, created_at: "2023-10-20 08:49:23.336499260 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 241, project_id: 647, created_at: "2023-10-20 08:49:23.355225599 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 242, project_id: 647, created_at: "2023-10-20 08:49:23.373709338 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 243, project_id: 647, created_at: "2023-10-20 08:49:23.391960257 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 244, project_id: 647, created_at: "2023-10-20 08:49:23.408247406 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 245, project_id: 647, created_at: "2023-10-20 08:49:23.427665125 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 246, project_id: 647, created_at: "2023-10-20 08:49:23.445517094 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, and #<Packages::Package id: 247, project_id: 647, created_at: "2023-10-20 08:49:23.464081612 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>3735 with suffix search term3736 is expected to contain exactly #<Packages::Package id: 243, project_id: 647, created_at: "2023-10-20 08:49:23.391960257 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 244, project_id: 647, created_at: "2023-10-20 08:49:23.408247406 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 245, project_id: 647, created_at: "2023-10-20 08:49:23.427665125 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 246, project_id: 647, created_at: "2023-10-20 08:49:23.445517094 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, and #<Packages::Package id: 247, project_id: 647, created_at: "2023-10-20 08:49:23.464081612 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>3737 with pre release packages3738 including them3739 is expected to contain exactly #<Packages::Package id: 237, project_id: 647, created_at: "2023-10-20 08:49:23.284079000 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 238, project_id: 647, created_at: "2023-10-20 08:49:23.302810952 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 239, project_id: 647, created_at: "2023-10-20 08:49:23.320026621 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 240, project_id: 647, created_at: "2023-10-20 08:49:23.336499260 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 241, project_id: 647, created_at: "2023-10-20 08:49:23.355225599 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 242, project_id: 647, created_at: "2023-10-20 08:49:23.373709338 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 243, project_id: 647, created_at: "2023-10-20 08:49:23.391960257 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 244, project_id: 647, created_at: "2023-10-20 08:49:23.408247406 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 245, project_id: 647, created_at: "2023-10-20 08:49:23.427665125 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 246, project_id: 647, created_at: "2023-10-20 08:49:23.445517094 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 247, project_id: 647, created_at: "2023-10-20 08:49:23.464081612 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, and #<Packages::Package id: 255, project_id: 647, created_at: "2023-10-20 08:49:37.862826195 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>3740 excluding them3741 is expected to contain exactly #<Packages::Package id: 237, project_id: 647, created_at: "2023-10-20 08:49:23.284079000 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 238, project_id: 647, created_at: "2023-10-20 08:49:23.302810952 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 239, project_id: 647, created_at: "2023-10-20 08:49:23.320026621 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 240, project_id: 647, created_at: "2023-10-20 08:49:23.336499260 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 241, project_id: 647, created_at: "2023-10-20 08:49:23.355225599 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 242, project_id: 647, created_at: "2023-10-20 08:49:23.373709338 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 243, project_id: 647, created_at: "2023-10-20 08:49:23.391960257 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 244, project_id: 647, created_at: "2023-10-20 08:49:23.408247406 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 245, project_id: 647, created_at: "2023-10-20 08:49:23.427665125 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 246, project_id: 647, created_at: "2023-10-20 08:49:23.445517094 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, and #<Packages::Package id: 247, project_id: 647, created_at: "2023-10-20 08:49:23.464081612 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>3742 when mixed with release versions3743 is expected to contain exactly #<Packages::Package id: 237, project_id: 647, created_at: "2023-10-20 08:49:23.284079000 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 238, project_id: 647, created_at: "2023-10-20 08:49:23.302810952 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 239, project_id: 647, created_at: "2023-10-20 08:49:23.320026621 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 240, project_id: 647, created_at: "2023-10-20 08:49:23.336499260 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 241, project_id: 647, created_at: "2023-10-20 08:49:23.355225599 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 242, project_id: 647, created_at: "2023-10-20 08:49:23.373709338 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 243, project_id: 647, created_at: "2023-10-20 08:49:23.391960257 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 244, project_id: 647, created_at: "2023-10-20 08:49:23.408247406 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 245, project_id: 647, created_at: "2023-10-20 08:49:23.427665125 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 246, project_id: 647, created_at: "2023-10-20 08:49:23.445517094 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 247, project_id: 647, created_at: "2023-10-20 08:49:23.464081612 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>, and #<Packages::Package id: 256, project_id: 647, created_at: "2023-10-20 08:49:38.507360756 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>3744Gitlab::PrometheusClient3745 #ping3746 issues a "query" request to the API endpoint3747 #healthy?3748 returns true when status code is 200 and healthy response body3749 returns false when status code is 200 and unhealthy response body3750 raises error when status code not 2003751 #ready?3752 returns true when status code is 2003753 returns false when status code is not 2003754 raises error when ready api throws exception3755 failure to reach a provided prometheus url3756 ping3757 behaves like exceptions are raised3758 raises a Gitlab::PrometheusClient::ConnectionError when a Net::OpenTimeout is rescued3759 raises a Gitlab::PrometheusClient::ConnectionError when a Net::ReadTimeout is rescued3760 raises a Gitlab::PrometheusClient::ConnectionError when a Net::WriteTimeout is rescued3761 raises a Gitlab::PrometheusClient::ConnectionError when a Gitlab::HTTP_V2::ReadTotalTimeout is rescued3762 raises a Gitlab::PrometheusClient::ConnectionError when a EOFError is rescued3763 raises a Gitlab::PrometheusClient::ConnectionError when a SocketError is rescued3764 raises a Gitlab::PrometheusClient::ConnectionError when a OpenSSL::SSL::SSLError is rescued3765 raises a Gitlab::PrometheusClient::ConnectionError when a OpenSSL::OpenSSLError is rescued3766 raises a Gitlab::PrometheusClient::ConnectionError when a Errno::ECONNRESET is rescued3767 raises a Gitlab::PrometheusClient::ConnectionError when a Errno::ECONNREFUSED is rescued3768 raises a Gitlab::PrometheusClient::ConnectionError when a Errno::EHOSTUNREACH is rescued3769 raises a Gitlab::PrometheusClient::ConnectionError when a Errno::ENETUNREACH is rescued3770 raises a Gitlab::PrometheusClient::ConnectionError when a Gitlab::HTTP_V2::BlockedUrlError is rescued3771 raises a Gitlab::PrometheusClient::ConnectionError when a Gitlab::HTTP_V2::RedirectionTooDeep is rescued3772 raises a Gitlab::PrometheusClient::ConnectionError when a Net::HTTPBadResponse is rescued3773 proxy3774 behaves like exceptions are raised3775 raises a Gitlab::PrometheusClient::ConnectionError when a Net::OpenTimeout is rescued3776 raises a Gitlab::PrometheusClient::ConnectionError when a Net::ReadTimeout is rescued3777 raises a Gitlab::PrometheusClient::ConnectionError when a Net::WriteTimeout is rescued3778 raises a Gitlab::PrometheusClient::ConnectionError when a Gitlab::HTTP_V2::ReadTotalTimeout is rescued3779 raises a Gitlab::PrometheusClient::ConnectionError when a EOFError is rescued3780 raises a Gitlab::PrometheusClient::ConnectionError when a SocketError is rescued3781 raises a Gitlab::PrometheusClient::ConnectionError when a OpenSSL::SSL::SSLError is rescued3782 raises a Gitlab::PrometheusClient::ConnectionError when a OpenSSL::OpenSSLError is rescued3783 raises a Gitlab::PrometheusClient::ConnectionError when a Errno::ECONNRESET is rescued3784 raises a Gitlab::PrometheusClient::ConnectionError when a Errno::ECONNREFUSED is rescued3785 raises a Gitlab::PrometheusClient::ConnectionError when a Errno::EHOSTUNREACH is rescued3786 raises a Gitlab::PrometheusClient::ConnectionError when a Errno::ENETUNREACH is rescued3787 raises a Gitlab::PrometheusClient::ConnectionError when a Gitlab::HTTP_V2::BlockedUrlError is rescued3788 raises a Gitlab::PrometheusClient::ConnectionError when a Gitlab::HTTP_V2::RedirectionTooDeep is rescued3789 raises a Gitlab::PrometheusClient::ConnectionError when a Net::HTTPBadResponse is rescued3790 #query3791 when request returns vector results3792 returns data from the API call3793 when request returns matrix results3794 returns nil3795 when request returns no data3796 returns []3797 behaves like failure response3798 when request returns 400 with an error message3799 raises a Gitlab::PrometheusClient::QueryError error3800 when request returns 400 without an error message3801 raises a Gitlab::PrometheusClient::QueryError error3802 when request returns 5003803 raises a Gitlab::PrometheusClient::UnexpectedResponseError error3804 when request returns non json data3805 raises a Gitlab::PrometheusClient::UnexpectedResponseError error3806 #aggregate3807 when request returns vector results3808 returns data from the API call grouped by labels3809 when request returns no data3810 returns {}3811 behaves like failure response3812 when request returns 400 with an error message3813 raises a Gitlab::PrometheusClient::QueryError error3814 when request returns 400 without an error message3815 raises a Gitlab::PrometheusClient::QueryError error3816 when request returns 5003817 raises a Gitlab::PrometheusClient::UnexpectedResponseError error3818 when request returns non json data3819 raises a Gitlab::PrometheusClient::UnexpectedResponseError error3820 #series3821 calls endpoint and returns list of series3822 #label_values3823 calls endpoint and returns label values3824 #query_range3825 when non utc time is passed3826 passed dates are properly converted to utc3827 when a start time is passed3828 passed it in the requested URL3829 when request returns vector results3830 returns nil3831 when request returns matrix results3832 returns data from the API call3833 when request returns no data3834 returns []3835 behaves like failure response3836 when request returns 400 with an error message3837 raises a Gitlab::PrometheusClient::QueryError error3838 when request returns 400 without an error message3839 raises a Gitlab::PrometheusClient::QueryError error3840 when request returns 5003841 raises a Gitlab::PrometheusClient::UnexpectedResponseError error3842 when request returns non json data3843 raises a Gitlab::PrometheusClient::UnexpectedResponseError error3844 .compute_step3845 time_interval_in_seconds: 0, step: 603846 is expected to eq 603847 time_interval_in_seconds: 10 hours, step: 603848 is expected to eq 603849 time_interval_in_seconds: 10 hours and 1 second, step: 613850 is expected to eq 613851 time_interval_in_seconds: 30 minutes, step: 603852 is expected to eq 603853 time_interval_in_seconds: 3 hours, step: 603854 is expected to eq 603855 time_interval_in_seconds: 8 hours, step: 603856 is expected to eq 603857 time_interval_in_seconds: 1 day, step: 1443858 is expected to eq 1443859 time_interval_in_seconds: 3 days, step: 4323860 is expected to eq 4323861 time_interval_in_seconds: 1 week, step: 10083862 is expected to eq 10083863 proxy3864 get API3865 when response status code is 2003866 returns response object3867 when response status code is not 2003868 returns response object3869 when Gitlab::HTTP::ResponseError is raised3870 without response code3871 raises PrometheusClient::ConnectionError3872 with response code3873 raises Gitlab::PrometheusClient::QueryError3874Packages::Nuget::PackageFinder3875 #execute!3876 with a project3877 behaves like handling all the conditions3878 is expected to contain exactly #<Packages::Package id: 257, project_id: 650, created_at: "2023-10-20 08:49:46.453675000 +0000", upda...age_type: "nuget", creator_id: 872, status: "default", last_downloaded_at: nil, status_message: nil> and #<Packages::Package id: 258, project_id: 650, created_at: "2023-10-20 08:49:46.492516686 +0000", upda...age_type: "nuget", creator_id: 872, status: "default", last_downloaded_at: nil, status_message: nil>3879 with lower case package name3880 is expected to contain exactly #<Packages::Package id: 257, project_id: 650, created_at: "2023-10-20 08:49:46.453675000 +0000", upda...age_type: "nuget", creator_id: 872, status: "default", last_downloaded_at: nil, status_message: nil> and #<Packages::Package id: 258, project_id: 650, created_at: "2023-10-20 08:49:46.492516686 +0000", upda...age_type: "nuget", creator_id: 872, status: "default", last_downloaded_at: nil, status_message: nil>3881 with unknown package name3882 is expected to be empty3883 with an uninstallable package3884 is expected to contain exactly #<Packages::Package id: 258, project_id: 650, created_at: "2023-10-20 08:49:46.492516686 +0000", upda...age_type: "nuget", creator_id: 872, status: "default", last_downloaded_at: nil, status_message: nil>3885 with valid version3886 is expected to contain exactly #<Packages::Package id: 258, project_id: 650, created_at: "2023-10-20 08:49:46.492516686 +0000", upda...age_type: "nuget", creator_id: 872, status: "default", last_downloaded_at: nil, status_message: nil>3887 with varying case version3888 is expected to contain exactly #<Packages::Package id: 258, project_id: 650, created_at: "2023-10-20 08:49:46.492516686 +0000", upda...age_type: "nuget", creator_id: 872, status: "default", last_downloaded_at: nil, status_message: nil>3889 with unknown version3890 is expected to be empty3891 with normalized version3892 is expected to contain exactly #<Packages::Package id: 258, project_id: 650, created_at: "2023-10-20 08:49:46.492516686 +0000", upda...age_type: "nuget", creator_id: 872, status: "default", last_downloaded_at: nil, status_message: nil>3893 with limit hit3894 is expected to contain exactly #<Packages::Package id: 263, project_id: 650, created_at: "2023-10-20 08:49:50.320968530 +0000", upda...age_type: "nuget", creator_id: 872, status: "default", last_downloaded_at: nil, status_message: nil> and #<Packages::Package id: 264, project_id: 650, created_at: "2023-10-20 08:49:50.339723029 +0000", upda...age_type: "nuget", creator_id: 872, status: "default", last_downloaded_at: nil, status_message: nil>3895 with downcase package name3896 is expected to contain exactly #<Packages::Package id: 257, project_id: 650, created_at: "2023-10-20 08:49:46.453675000 +0000", upda...age_type: "nuget", creator_id: 872, status: "default", last_downloaded_at: nil, status_message: nil> and #<Packages::Package id: 258, project_id: 650, created_at: "2023-10-20 08:49:46.492516686 +0000", upda...age_type: "nuget", creator_id: 872, status: "default", last_downloaded_at: nil, status_message: nil>3897 with client version less than 33898 behaves like calling with_nuget_version_or_normalized_version scope3899 calls with_nuget_version_or_normalized_version scope with the correct arguments3900 with client version greater than or equal to 33901 behaves like calling with_nuget_version_or_normalized_version scope3902 calls with_nuget_version_or_normalized_version scope with the correct arguments3903 with no client version3904 behaves like calling with_nuget_version_or_normalized_version scope3905 calls with_nuget_version_or_normalized_version scope with the correct arguments3906 with a subgroup3907 behaves like handling all the conditions3908 is expected to contain exactly #<Packages::Package id: 257, project_id: 650, created_at: "2023-10-20 08:49:46.453675000 +0000", upda...age_type: "nuget", creator_id: 872, status: "default", last_downloaded_at: nil, status_message: nil> and #<Packages::Package id: 258, project_id: 650, created_at: "2023-10-20 08:49:46.492516686 +0000", upda...age_type: "nuget", creator_id: 872, status: "default", last_downloaded_at: nil, status_message: nil>3909 with lower case package name3910 is expected to contain exactly #<Packages::Package id: 257, project_id: 650, created_at: "2023-10-20 08:49:46.453675000 +0000", upda...age_type: "nuget", creator_id: 872, status: "default", last_downloaded_at: nil, status_message: nil> and #<Packages::Package id: 258, project_id: 650, created_at: "2023-10-20 08:49:46.492516686 +0000", upda...age_type: "nuget", creator_id: 872, status: "default", last_downloaded_at: nil, status_message: nil>3911 with unknown package name3912 is expected to be empty3913 with an uninstallable package3914 is expected to contain exactly #<Packages::Package id: 258, project_id: 650, created_at: "2023-10-20 08:49:46.492516686 +0000", upda...age_type: "nuget", creator_id: 872, status: "default", last_downloaded_at: nil, status_message: nil>3915 with valid version3916 is expected to contain exactly #<Packages::Package id: 258, project_id: 650, created_at: "2023-10-20 08:49:46.492516686 +0000", upda...age_type: "nuget", creator_id: 872, status: "default", last_downloaded_at: nil, status_message: nil>3917 with varying case version3918 is expected to contain exactly #<Packages::Package id: 258, project_id: 650, created_at: "2023-10-20 08:49:46.492516686 +0000", upda...age_type: "nuget", creator_id: 872, status: "default", last_downloaded_at: nil, status_message: nil>3919 with unknown version3920 is expected to be empty3921 with normalized version3922 is expected to contain exactly #<Packages::Package id: 258, project_id: 650, created_at: "2023-10-20 08:49:46.492516686 +0000", upda...age_type: "nuget", creator_id: 872, status: "default", last_downloaded_at: nil, status_message: nil>3923 with limit hit3924 is expected to contain exactly #<Packages::Package id: 266, project_id: 650, created_at: "2023-10-20 08:49:54.089779424 +0000", upda...age_type: "nuget", creator_id: 872, status: "default", last_downloaded_at: nil, status_message: nil> and #<Packages::Package id: 267, project_id: 650, created_at: "2023-10-20 08:49:54.107675474 +0000", upda...age_type: "nuget", creator_id: 872, status: "default", last_downloaded_at: nil, status_message: nil>3925 with downcase package name3926 is expected to contain exactly #<Packages::Package id: 257, project_id: 650, created_at: "2023-10-20 08:49:46.453675000 +0000", upda...age_type: "nuget", creator_id: 872, status: "default", last_downloaded_at: nil, status_message: nil> and #<Packages::Package id: 258, project_id: 650, created_at: "2023-10-20 08:49:46.492516686 +0000", upda...age_type: "nuget", creator_id: 872, status: "default", last_downloaded_at: nil, status_message: nil>3927 with client version less than 33928 behaves like calling with_nuget_version_or_normalized_version scope3929 calls with_nuget_version_or_normalized_version scope with the correct arguments3930 with client version greater than or equal to 33931 behaves like calling with_nuget_version_or_normalized_version scope3932 calls with_nuget_version_or_normalized_version scope with the correct arguments3933 with no client version3934 behaves like calling with_nuget_version_or_normalized_version scope3935 calls with_nuget_version_or_normalized_version scope with the correct arguments3936 with a group3937 behaves like handling all the conditions3938 is expected to contain exactly #<Packages::Package id: 257, project_id: 650, created_at: "2023-10-20 08:49:46.453675000 +0000", upda...age_type: "nuget", creator_id: 872, status: "default", last_downloaded_at: nil, status_message: nil> and #<Packages::Package id: 258, project_id: 650, created_at: "2023-10-20 08:49:46.492516686 +0000", upda...age_type: "nuget", creator_id: 872, status: "default", last_downloaded_at: nil, status_message: nil>3939 with lower case package name3940 is expected to contain exactly #<Packages::Package id: 257, project_id: 650, created_at: "2023-10-20 08:49:46.453675000 +0000", upda...age_type: "nuget", creator_id: 872, status: "default", last_downloaded_at: nil, status_message: nil> and #<Packages::Package id: 258, project_id: 650, created_at: "2023-10-20 08:49:46.492516686 +0000", upda...age_type: "nuget", creator_id: 872, status: "default", last_downloaded_at: nil, status_message: nil>3941 with unknown package name3942 is expected to be empty3943 with an uninstallable package3944 is expected to contain exactly #<Packages::Package id: 258, project_id: 650, created_at: "2023-10-20 08:49:46.492516686 +0000", upda...age_type: "nuget", creator_id: 872, status: "default", last_downloaded_at: nil, status_message: nil>3945 with valid version3946 is expected to contain exactly #<Packages::Package id: 258, project_id: 650, created_at: "2023-10-20 08:49:46.492516686 +0000", upda...age_type: "nuget", creator_id: 872, status: "default", last_downloaded_at: nil, status_message: nil>3947 with varying case version3948 is expected to contain exactly #<Packages::Package id: 258, project_id: 650, created_at: "2023-10-20 08:49:46.492516686 +0000", upda...age_type: "nuget", creator_id: 872, status: "default", last_downloaded_at: nil, status_message: nil>3949 with unknown version3950 is expected to be empty3951 with normalized version3952 is expected to contain exactly #<Packages::Package id: 258, project_id: 650, created_at: "2023-10-20 08:49:46.492516686 +0000", upda...age_type: "nuget", creator_id: 872, status: "default", last_downloaded_at: nil, status_message: nil>3953 with limit hit3954 is expected to contain exactly #<Packages::Package id: 269, project_id: 650, created_at: "2023-10-20 08:49:58.199920570 +0000", upda...age_type: "nuget", creator_id: 872, status: "default", last_downloaded_at: nil, status_message: nil> and #<Packages::Package id: 270, project_id: 650, created_at: "2023-10-20 08:49:58.216150889 +0000", upda...age_type: "nuget", creator_id: 872, status: "default", last_downloaded_at: nil, status_message: nil>3955 with downcase package name3956 is expected to contain exactly #<Packages::Package id: 257, project_id: 650, created_at: "2023-10-20 08:49:46.453675000 +0000", upda...age_type: "nuget", creator_id: 872, status: "default", last_downloaded_at: nil, status_message: nil> and #<Packages::Package id: 258, project_id: 650, created_at: "2023-10-20 08:49:46.492516686 +0000", upda...age_type: "nuget", creator_id: 872, status: "default", last_downloaded_at: nil, status_message: nil>3957 with client version less than 33958 behaves like calling with_nuget_version_or_normalized_version scope3959 calls with_nuget_version_or_normalized_version scope with the correct arguments3960 with client version greater than or equal to 33961 behaves like calling with_nuget_version_or_normalized_version scope3962 calls with_nuget_version_or_normalized_version scope with the correct arguments3963 with no client version3964 behaves like calling with_nuget_version_or_normalized_version scope3965 calls with_nuget_version_or_normalized_version scope with the correct arguments3966 with nil3967 is expected to be empty3968 when package name is blank3969 is expected to be empty3970Gitlab::Ci::Config::External::Processor3971 #perform3972 when no external files defined3973 returns the same values3974 when an invalid local file is defined3975 raises an error3976 when an invalid remote file is defined3977 raises an error3978 with a valid remote external file is defined3979 appends the file to the values3980 removes the 'include' keyword3981 when the remote file has `include` with rules:exists3982 evaluates the rule as false3983 removes the 'include' keyword3984 with a valid local external file is defined3985 appends the file to the values3986 removes the 'include' keyword3987 with multiple external files are defined3988 appends the files to the values3989 removes the 'include' keyword3990 when external files are defined but not valid3991 raises an error3992 when both external files and values defined the same key3993 takes precedence3994 when a nested includes are defined3995 when project is public3996 properly expands all includes3997 propagates the pipeline logger3998 stores includes3999 when user is reporter of another project4000 properly expands all includes4001 when user is not allowed4002 raises an error4003 when too many includes is included4004 raises an error4005 when config includes an external configuration file via SSL web request4006 with an acceptable certificate4007 is expected to include {:image => "image:1.0"}4008 with a self-signed certificate4009 returns a reportable configuration error4010 include:component4011 appends the file to the values4012 when a valid project file is defined4013 appends the file to the values4014 when valid project files are defined in a single include4015 appends the file to the values4016 stores includes4017 when local file path has wildcard4018 fetches the matched files4019 stores includes4020 when rules defined4021 when a rule is invalid4022 raises IncludeError4023npm.gitlab-ci.yml4024 the created pipeline4025 on default branch4026 when package.json has been changed4027 behaves like publish job created4028 creates a pipeline with a single job: publish4029 when package.json does not exist or has not been changed4030 behaves like no pipeline created4031 does not create a pipeline because the only job (publish) is not created4032 when the branch name is v1.0.04033 behaves like publish job created4034 creates a pipeline with a single job: publish4035 when the tag name is v1.0.04036 behaves like publish job created4037 creates a pipeline with a single job: publish4038 when the branch name is v2.1.0-alpha4039 behaves like publish job created4040 creates a pipeline with a single job: publish4041 when the tag name is v2.1.0-alpha4042 behaves like publish job created4043 creates a pipeline with a single job: publish4044 when the branch name is patch-14045 behaves like no pipeline created4046 does not create a pipeline because the only job (publish) is not created4047 when the tag name is patch-14048 behaves like no pipeline created4049 does not create a pipeline because the only job (publish) is not created4050 when the branch name is my-feature-branch4051 behaves like no pipeline created4052 does not create a pipeline because the only job (publish) is not created4053 when the tag name is my-feature-branch4054 behaves like no pipeline created4055 does not create a pipeline because the only job (publish) is not created4056 when the branch name is v14057 behaves like no pipeline created4058 does not create a pipeline because the only job (publish) is not created4059 when the tag name is v14060 behaves like no pipeline created4061 does not create a pipeline because the only job (publish) is not created4062 when the branch name is v1.04063 behaves like no pipeline created4064 does not create a pipeline because the only job (publish) is not created4065 when the tag name is v1.04066 behaves like no pipeline created4067 does not create a pipeline because the only job (publish) is not created4068 when the branch name is 2.1.04069 behaves like no pipeline created4070 does not create a pipeline because the only job (publish) is not created4071 when the tag name is 2.1.04072 behaves like no pipeline created4073 does not create a pipeline because the only job (publish) is not created4074Badge4075 validations4076 link_url format4077 behaves like placeholder url4078 allows url with http protocol4079 allows url with https protocol4080 cannot be empty4081 cannot be nil4082 accept badges placeholders4083 sanitize url4084 image_url format4085 behaves like placeholder url4086 allows url with http protocol4087 allows url with https protocol4088 cannot be empty4089 cannot be nil4090 accept badges placeholders4091 sanitize url4092 methods4093 #rendered_link_url4094 behaves like rendered_links4095 uses the project information to populate the url placeholders4096 returns the url if the project used is nil4097 #rendered_image_url4098 behaves like rendered_links4099 uses the project information to populate the url placeholders4100 returns the url if the project used is nil4101 when asset proxy is enabled4102 returns a proxied URL4103DesignManagement::SaveDesignsService4104 #execute4105 when the feature is not available4106 does not create an event in the activity stream4107 behaves like a service error4108 returns an error4109 when the feature is available4110 creates a commit, an event in the activity stream and updates the creation count4111 can run the same command in parallel4112 repository existence4113 is ensured when the service runs4114 behaves like internal event tracking4115 logs to Snowplow4116 when the design collection is in the process of being copied4117 behaves like a service error4118 returns an error4119 when the design collection has a copy error4120 resets the copy state4121 the response4122 includes designs with the expected properties4123 saving the file to LFS4124 saves the design to LFS and saves the repository_type of the LfsObjectsProject as design4125 when HEAD branch is different from master4126 does not raise an exception during update4127 when a design is being updated4128 creates a new version for the existing design and updates the file4129 updates UsageData for changed designs4130 records the correct events4131 behaves like internal event tracking4132 logs to Snowplow4133 when uploading a new design4134 does not link the new version to the existing design4135 when detecting content type4136 detects content type when feature flag is enabled4137 skips content type detection when feature flag is disabled4138 when a design has not changed since its previous version4139 does not create a new version, and returns the design in `skipped_designs`4140 when doing a mixture of updates and creations4141 has the correct side-effects4142 when uploading multiple files4143 returns information about both designs in the response4144 has the correct side-effects4145 when uploading too many files4146 returns the correct error4147 when uploading duplicate files4148 returns the correct error4149 when the user is not allowed to upload designs4150 behaves like a service error4151 returns an error4152 failure modes4153 when creating the commit fails4154 behaves like an execution error4155 returns an error4156 when creating the versions fails4157 behaves like a service error4158 returns an error4159 when a design already existed in the repo but we didn't know about it in the database4160 creates the design and a new version for it4161 scalability4162 runs the same queries for all requests, regardless of number of files (PENDING: See: https://gitlab.com/gitlab-org/gitlab/-/issues/213169)4163ApplicationRecord4164 #id_in4165 returns records of the ids4166 .safe_ensure_unique4167 returns false when ActiveRecord::RecordNotUnique is raised4168 retries based on retry count specified4169 safe find or create methods4170 .safe_find_or_create_by4171 creates the suggestion avoiding race conditions4172 passes a block to find_or_create_by4173 does not create a record when is not valid4174 .safe_find_or_create_by!4175 creates a record using safe_find_or_create_by4176 raises a validation error if the record was not persisted4177 passes a block to find_or_create_by4178 raises a record not found error in case of attributes mismatch4179 .underscore4180 returns the underscored value of the class as a string4181 .where_exists4182 produces a WHERE EXISTS query4183 .where_not_exists4184 produces a WHERE NOT EXISTS query4185 .transaction4186 opens a new transaction4187 does not increment a counter when a transaction is not nested4188 increments a counter when a nested transaction is created4189 increments a counter when a transaction is created in ActiveRecord4190 .with_fast_read_statement_timeout4191 when the query runs faster than configured timeout4192 executes the query without error4193 when the query runs longer than configured timeout4194 cancels the query and raises an exception4195 with database load balancing4196 yields control4197 when the query runs faster than configured timeout4198 executes the query without error4199 when the query runs longer than configured timeout4200 cancels the query and raiss an exception4201 .default_select_columns4202 without an ignored column4203 behaves like selects identically to the default4204 generates the same sql as the default4205 with an ignored column4206 behaves like selects identically to the default4207 generates the same sql as the default4208Gitlab::Ci::Runner::Backoff4209 #duration4210 returns backoff duration from start4211 returns an integer value4212 returns the smallest number greater than or equal to duration4213 #slot4214 started: 0, slot: 04215 falls into an appropaite backoff slot4216 started: 0.1, slot: 04217 falls into an appropaite backoff slot4218 started: 0.9, slot: 04219 falls into an appropaite backoff slot4220 started: 1, slot: 04221 falls into an appropaite backoff slot4222 started: 1.1, slot: 04223 falls into an appropaite backoff slot4224 started: 1.9, slot: 04225 falls into an appropaite backoff slot4226 started: 2, slot: 04227 falls into an appropaite backoff slot4228 started: 2.9, slot: 04229 falls into an appropaite backoff slot4230 started: 3, slot: 04231 falls into an appropaite backoff slot4232 started: 4, slot: 14233 falls into an appropaite backoff slot4234 started: 5, slot: 14235 falls into an appropaite backoff slot4236 started: 6, slot: 14237 falls into an appropaite backoff slot4238 started: 7, slot: 14239 falls into an appropaite backoff slot4240 started: 8, slot: 24241 falls into an appropaite backoff slot4242 started: 9, slot: 24243 falls into an appropaite backoff slot4244 started: 9.9, slot: 24245 falls into an appropaite backoff slot4246 started: 10, slot: 24247 falls into an appropaite backoff slot4248 started: 15, slot: 24249 falls into an appropaite backoff slot4250 started: 16, slot: 34251 falls into an appropaite backoff slot4252 started: 31, slot: 34253 falls into an appropaite backoff slot4254 started: 32, slot: 44255 falls into an appropaite backoff slot4256 started: 63, slot: 44257 falls into an appropaite backoff slot4258 started: 64, slot: 54259 falls into an appropaite backoff slot4260 started: 127, slot: 54261 falls into an appropaite backoff slot4262 started: 128, slot: 64263 falls into an appropaite backoff slot4264 started: 250, slot: 64265 falls into an appropaite backoff slot4266 started: 310, slot: 74267 falls into an appropaite backoff slot4268 started: 520, slot: 84269 falls into an appropaite backoff slot4270 started: 999, slot: 84271 falls into an appropaite backoff slot4272 #to_seconds4273 started: 0, backoff: 14274 calculates backoff based on an appropriate slot4275 started: 0.1, backoff: 14276 calculates backoff based on an appropriate slot4277 started: 0.9, backoff: 14278 calculates backoff based on an appropriate slot4279 started: 1, backoff: 14280 calculates backoff based on an appropriate slot4281 started: 1.1, backoff: 14282 calculates backoff based on an appropriate slot4283 started: 1.9, backoff: 14284 calculates backoff based on an appropriate slot4285 started: 2, backoff: 14286 calculates backoff based on an appropriate slot4287 started: 3, backoff: 14288 calculates backoff based on an appropriate slot4289 started: 4, backoff: 24290 calculates backoff based on an appropriate slot4291 started: 5, backoff: 24292 calculates backoff based on an appropriate slot4293 started: 6, backoff: 24294 calculates backoff based on an appropriate slot4295 started: 6.5, backoff: 24296 calculates backoff based on an appropriate slot4297 started: 7, backoff: 24298 calculates backoff based on an appropriate slot4299 started: 8, backoff: 44300 calculates backoff based on an appropriate slot4301 started: 9, backoff: 44302 calculates backoff based on an appropriate slot4303 started: 9.9, backoff: 44304 calculates backoff based on an appropriate slot4305 started: 10, backoff: 44306 calculates backoff based on an appropriate slot4307 started: 15, backoff: 44308 calculates backoff based on an appropriate slot4309 started: 16, backoff: 84310 calculates backoff based on an appropriate slot4311 started: 31, backoff: 84312 calculates backoff based on an appropriate slot4313 started: 32, backoff: 164314 calculates backoff based on an appropriate slot4315 started: 63, backoff: 164316 calculates backoff based on an appropriate slot4317 started: 64, backoff: 324318 calculates backoff based on an appropriate slot4319 started: 127, backoff: 324320 calculates backoff based on an appropriate slot4321 started: 128, backoff: 644322 calculates backoff based on an appropriate slot4323 started: 250, backoff: 644324 calculates backoff based on an appropriate slot4325 started: 310, backoff: 644326 calculates backoff based on an appropriate slot4327 started: 520, backoff: 644328 calculates backoff based on an appropriate slot4329 started: 999, backoff: 644330 calculates backoff based on an appropriate slot4331Gitlab::Ci::Badge::Release::Template4332 #key_text4333 defaults to latest release4334 returns custom key text4335 #value_text4336 when a release exists4337 returns the tag of the release4338 no releases exist4339 returns string that latest release is none4340 #key_width4341 returns the default key width4342 returns custom key width4343 #value_width4344 returns the default value width4345 returns custom value width4346 returns VALUE_WIDTH_DEFAULT if the custom value_width supplied is greater than permissible limit4347 returns VALUE_WIDTH_DEFAULT if value_width is not a number4348 #key_color4349 always has the same color4350 #value_color4351 when release exists4352 is blue4353 when release does not exist4354 is red4355Gitlab::DataBuilder::Emoji4356 # order random4357 when emoji on snippet4358 returns the snippet data4359 behaves like includes standard data4360 is expected to eq {:avatar_url=>"https://www.gravatar.com/avatar/012ffb92f311dd02325a793962ae4b60?s=80&d=identicon", :email=>"[REDACTED]", :id=>949, :name=>"Sidney Jones1024", :username=>"user341"}4361 contains project data4362 when emoji on issue4363 returns the issue data4364 behaves like includes standard data4365 is expected to eq {:avatar_url=>"https://www.gravatar.com/avatar/012ffb92f311dd02325a793962ae4b60?s=80&d=identicon", :email=>"[REDACTED]", :id=>949, :name=>"Sidney Jones1024", :username=>"user341"}4366 contains project data4367 when emoji on merge request4368 returns the merge request data4369 behaves like includes standard data4370 is expected to eq {:avatar_url=>"https://www.gravatar.com/avatar/012ffb92f311dd02325a793962ae4b60?s=80&d=identicon", :email=>"[REDACTED]", :id=>949, :name=>"Sidney Jones1024", :username=>"user341"}4371 contains project data4372 when awardable does not respond to hook_attrs4373 returns the issue data4374 behaves like includes standard data4375 is expected to eq {:avatar_url=>"https://www.gravatar.com/avatar/012ffb92f311dd02325a793962ae4b60?s=80&d=identicon", :email=>"[REDACTED]", :id=>949, :name=>"Sidney Jones1024", :username=>"user341"}4376 contains project data4377 when emoji on note4378 when note on issue4379 returns the note and issue data4380 behaves like includes standard data4381 is expected to eq {:avatar_url=>"https://www.gravatar.com/avatar/012ffb92f311dd02325a793962ae4b60?s=80&d=identicon", :email=>"[REDACTED]", :id=>949, :name=>"Sidney Jones1024", :username=>"user341"}4382 contains project data4383 when note on merge request4384 returns the note and merge request data4385 behaves like includes standard data4386 is expected to eq {:avatar_url=>"https://www.gravatar.com/avatar/012ffb92f311dd02325a793962ae4b60?s=80&d=identicon", :email=>"[REDACTED]", :id=>949, :name=>"Sidney Jones1024", :username=>"user341"}4387 contains project data4388 when note on snippet4389 returns the note and snippet data4390 behaves like includes standard data4391 is expected to eq {:avatar_url=>"https://www.gravatar.com/avatar/012ffb92f311dd02325a793962ae4b60?s=80&d=identicon", :email=>"[REDACTED]", :id=>949, :name=>"Sidney Jones1024", :username=>"user341"}4392 contains project data4393 when note on commit4394 returns the note and commit data4395 behaves like includes standard data4396 is expected to eq {:avatar_url=>"https://www.gravatar.com/avatar/012ffb92f311dd02325a793962ae4b60?s=80&d=identicon", :email=>"[REDACTED]", :id=>949, :name=>"Sidney Jones1024", :username=>"user341"}4397 contains project data4398Appearance4399 example at ./spec/models/appearance_spec.rb:94400 is expected to eq nil4401 is expected to have many uploads4402 default values4403 is expected to eq ""4404 is expected to eq ""4405 is expected to eq ""4406 is expected to eq ""4407 is expected to eq ""4408 is expected to eq ""4409 is expected to eq ""4410 is expected to eq ""4411 is expected to eq ""4412 is expected to eq "#E75E40"4413 is expected to eq "#FFFFFF"4414 is expected to eq false4415 is expected to contain exactly 192 and 5124416 #single_appearance_row4417 adds an error when more than 1 row exists4418 with uploads4419 behaves like model with uploads4420 .destroy4421 with mounted uploader4422 deletes remote uploads4423 with not mounted uploads4424 with local files4425 deletes any FileUploader uploads which are not mounted (PENDING: No reason given)4426 deletes local files (PENDING: No reason given)4427 with remote files4428 deletes any FileUploader uploads which are not mounted (PENDING: No reason given)4429 deletes remote files (PENDING: No reason given)4430 behaves like logo paths4431 returns nil when there is no upload4432 returns the path when the upload has been orphaned4433 returns a local path using the system route4434 with asset host configured4435 returns a full URL with the system path4436 behaves like logo paths4437 returns nil when there is no upload4438 returns the path when the upload has been orphaned4439 returns a local path using the system route4440 with asset host configured4441 returns a full URL with the system path4442 behaves like logo paths4443 returns nil when there is no upload4444 returns the path when the upload has been orphaned4445 returns a local path using the system route4446 with asset host configured4447 returns a full URL with the system path4448 behaves like logo paths4449 returns nil when there is no upload4450 returns the path when the upload has been orphaned4451 returns a local path using the system route4452 with asset host configured4453 returns a full URL with the system path4454 behaves like icon paths sized4455 returns icon path with size parameter4456 behaves like icon paths sized4457 returns icon path with size parameter4458 validations4459 is expected to allow :message_background_color to be ‹nil›4460 is expected to allow :message_background_color to be ‹"#000"›4461 is expected to allow :message_background_color to be ‹"#AABBCC"›4462 is expected not to allow :message_background_color to be ‹"000"›4463 is expected to allow :message_font_color to be ‹nil›4464 is expected to allow :message_font_color to be ‹"#000"›4465 is expected to allow :message_font_color to be ‹"#AABBCC"›4466 is expected not to allow :message_font_color to be ‹"000"›4467 valid pwa attributes4468 attribute: :pwa_name, value: nil4469 behaves like validation allows4470 is expected to allow :pwa_name to be ‹nil›4471 attribute: :pwa_name, value: "GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG"4472 behaves like validation allows4473 is expected to allow :pwa_name to be ‹"GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG"›4474 attribute: :pwa_short_name, value: nil4475 behaves like validation allows4476 is expected to allow :pwa_short_name to be ‹nil›4477 attribute: :pwa_short_name, value: "SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS"4478 behaves like validation allows4479 is expected to allow :pwa_short_name to be ‹"SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS"›4480 attribute: :pwa_description, value: nil4481 behaves like validation allows4482 is expected to allow :pwa_description to be ‹nil›4483 attribute: :pwa_description, value: "TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT"4484 behaves like validation allows4485 is expected to allow :pwa_description to be ‹"TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT...›4486 invalid pwa attributes4487 attribute: :pwa_name, value: "GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG", message: "is too long (maximum is 255 characters)"4488 behaves like validation permits with message4489 is expected not to allow :pwa_name to be ‹"GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG"›, producing a custom validation error on failure4490 attribute: :pwa_short_name, value: "SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS", message: "is too long (maximum is 255 characters)"4491 behaves like validation permits with message4492 is expected not to allow :pwa_short_name to be ‹"SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS"›, producing a custom validation error on failure4493 attribute: :pwa_description, value: "TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT", message: "is too long (maximum is 2048 characters)"4494 behaves like validation permits with message4495 is expected not to allow :pwa_description to be ‹"TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT...›, producing a custom validation error on failure4496 email_header_and_footer_enabled4497 default email_header_and_footer_enabled flag value4498 returns email_header_and_footer_enabled as true4499 when setting email_header_and_footer_enabled flag value4500 returns email_header_and_footer_enabled as true4501Projects::ParticipantsService4502 #execute4503 returns results in correct order4504 includes `All Project and Group Members` (FAILED - 1)45061st Try error in ./spec/services/projects/participants_service_spec.rb:29:4507expected [{:availability => nil, :avatar_url => "https://www.gravatar.com/avatar/380d51a17a1ab6fc34c72821db95b026?...acecb35e8a6af1cb?s=80&d=identicon", :name => "Sidney Jones1052", :type => "User", :username => "user367"}] to include (a hash including {:username => "all", :name => "All Project and Group Members"})4508Diff:4509@@ -1,12 +1,23 @@4510-[(a hash including {:username => "all", :name => "All Project and Group Members"})]4511+[{:availability=>nil,4512+ :avatar_url=>4514+ :name=>"Sidney Jones1053",4515+ :type=>"User",4516+ :username=>"namespace646"},4517+ {:availability=>nil,4518+ :avatar_url=>4520+ :name=>"Sidney Jones1052",4521+ :type=>"User",4522+ :username=>"user367"}]4524RSpec::Retry: 2nd try ./spec/services/projects/participants_service_spec.rb:294525 does not return duplicate author4526 N+1 checks4527 avoids N+1 UserDetail queries4528 avoids N+1 groups queries4529 group items4530 group user counts4531 returns correct user counts for groups4532 avatar_url4533 returns an url for the avatar4534 returns an url for the avatar with relative url4535 with subgroups4536 returns results ordered by full path4537 when `disable_all_mention` FF is enabled4538 does not include `All Project and Group Members`4539 #project_members4540 when there is a project in group namespace4541 returns members of a group4542 when there is a private group and a public project4543 when the private group is invited to the public project4544 does not return the private group4545 returns private group members4546 returns the project maintainer4547 returns project members from an invited public group4548 returns members of the ancestral groups of the private group4549 returns invited group members of the private group4550ActiveSession4551 #current?4552 returns true if the active session matches the current session4553 returns false if the active session does not match the current session4554 returns false if the session id is nil4555 .list4556 returns all sessions by user4557 returns an empty array if the user does not have any active session4558 when the current session is in the old format4559 behaves like ignoring obsolete entries4560 does not return obsolete entries and cleans them up4561 when the current session is in the new format4562 behaves like ignoring obsolete entries4563 does not return obsolete entries and cleans them up4564 .list_sessions4565 uses the ActiveSession lookup to return original sessions4566 .session_ids_for_user4567 uses the user lookup table to return session ids4568 .sessions_from_ids4569 uses the ActiveSession lookup to return original sessions4570 avoids a redis lookup for an empty array4571 uses redis lookup in batches4572 .set4573 sets a new redis entry for the user session and a lookup entry4574 adds timestamps and information from the request4575 keeps the created_at from the login on consecutive requests4576 .destroy_session4577 destroy called with Rack::Session::SessionId#private_id4578 calls .destroy_sessions4579 ActiveSession with session_private_id4580 when using old session key serialization4581 removes the devise session4582 removes the lookup entry4583 removes the ActiveSession4584 when using new session key serialization4585 removes the devise session4586 removes the lookup entry4587 removes the ActiveSession4588 .destroy_all_but_current4589 gracefully handles a nil session ID4590 with legacy sessions4591 behaves like with user sessions4592 removes the entry associated with the all user sessions but current4593 removes the lookup entry of deleted sessions4594 does not remove impersonated sessions4595 with new sessions4596 behaves like with user sessions4597 removes the entry associated with the all user sessions but current4598 removes the lookup entry of deleted sessions4599 does not remove impersonated sessions4600 .cleanup4601 with legacy sessions4602 behaves like cleaning up4603 does not bail if there are no lookup entries4604 when removing obsolete sessions4605 removes obsolete lookup entries4606 cleaning up old sessions4607 removes obsolete active sessions entries4608 removes obsolete lookup entries4609 removes obsolete lookup entries even without active session4610 when the number of active sessions is lower than the limit4611 does not remove active session entries, but removes lookup entries4612 cleaning up old sessions stored by Rack::Session::SessionId#private_id4613 removes obsolete active sessions entries4614 with new sessions4615 behaves like cleaning up4616 does not bail if there are no lookup entries4617 when removing obsolete sessions4618 removes obsolete lookup entries4619 cleaning up old sessions4620 removes obsolete active sessions entries4621 removes obsolete lookup entries4622 removes obsolete lookup entries even without active session4623 when the number of active sessions is lower than the limit4624 does not remove active session entries, but removes lookup entries4625 cleaning up old sessions stored by Rack::Session::SessionId#private_id4626 removes obsolete active sessions entries4627 .cleaned_up_lookup_entries4628 with legacy sessions4629 behaves like cleaning up lookup entries4630 removes obsolete lookup entries4631 reports the removed entries4632 with new sessions4633 behaves like cleaning up lookup entries4634 removes obsolete lookup entries4635 reports the removed entries4636 .set_active_user_cookie4637 sets marketing cookie4638Gitlab::Redis::RateLimiting4639 behaves like redis_shared_examples4640 .config_file_name4641 when there is no config file anywhere4642 is expected to be nil4643 .store4644 with old format4645 behaves like redis store4646 instantiates Redis::Store4647 with the namespace4648 uses specified namespace4649 with new format4650 behaves like redis store4651 instantiates Redis::Store4652 with the namespace4653 uses specified namespace4654 .params4655 withstands mutation4656 when url contains unix socket reference4657 with old format4658 returns path key instead4659 with new format4660 returns path key instead4661 when url is host based4662 with old format4663 returns hash with host, port, db, and password4664 with new format4665 rails_env: "development", host: "development-host"4666 returns hash with host, port, db, and password4667 rails_env: "test", host: "test-host"4668 returns hash with host, port, db, and password4669 rails_env: "production", host: "production-host"4670 returns hash with host, port, db, and password4671 with redis cluster format4672 rails_env: "development", host: "development-master"4673 returns hash with cluster and password4674 rails_env: "test", host: "test-master"4675 returns hash with cluster and password4676 rails_env: "production", host: "production-master"4677 returns hash with cluster and password4678 .url4679 withstands mutation4680 when yml file with env variable4681 reads redis url from env variable4682 .version4683 returns a version4684 .with4685 when running on single-threaded runtime4686 instantiates a connection pool with size 54687 when running on multi-threaded runtime4688 instantiates a connection pool with a size based on the concurrency of the worker4689 when there is no config at all4690 can run an empty block4691 #db4692 with old format4693 returns the correct db4694 with new format4695 returns the correct db4696 with cluster-mode4697 returns the correct db4698 #sentinels4699 when sentinels are defined4700 rails_env: "development", hosts: ["development-replica1", "development-replica2"]4701 returns an array of hashes with host and port keys4702 rails_env: "test", hosts: ["test-replica1", "test-replica2"]4703 returns an array of hashes with host and port keys4704 rails_env: "production", hosts: ["production-replica1", "production-replica2"]4705 returns an array of hashes with host and port keys4706 when sentinels are not defined4707 returns nil4708 when cluster is defined4709 returns nil4710 #sentinels?4711 when sentinels are defined4712 returns true4713 when sentinels are not defined4714 is expected to eq nil4715 when cluster is defined4716 returns false4717 #raw_config_hash4718 returns old-style single url config in a hash4719 returns cluster config without url key in a hash4720 #parse_client_tls_options4721 when configuration does not have TLS related options4722 returns the coniguration as-is4723 when specified certificate file does not exist4724 raises error about missing certificate file4725 when specified key file does not exist4726 raises error about missing key file4727 when only certificate file is specified4728 renders resque.yml correctly4729 when only key file is specified4730 renders resque.yml correctly4731 when configuration valid TLS related options4732 converts cert_file and key_file appropriately4733 #fetch_config4734 raises an exception when the config file contains invalid yaml4735 when redis.yml exists4736 uses config/redis.yml4737 when no config file exsits4738 returns nil4739 when resque.yml exists4740 returns the config from resque.yml4741 #fetch_config4742 when redis.yml exists4743 when the fallback has a redis.yml entry4744 is expected to eq {"fallback redis.yml"=>123}4745 and an instance config file exists4746 is expected to eq {"instance specific file"=>456}4747 and the instance has a redis.yml entry4748 is expected to eq {"instance redis.yml"=>789}4749 when no redis config file exsits4750 returns nil4751 when resque.yml exists4752 returns the config from resque.yml4753Gitlab::Utils::SanitizeNodeLink4754 # order random4755 #sanitize_unsafe_links4756 makes a call to #remove_unsafe_links_method4757 #remove_unsafe_links4758 with the scheme: javascript:4759 <a> tags4760 removes the unsafe link4761 <img> tags4762 removes the unsafe link4763 <video> tags4764 removes the unsafe link4765 <audio> tags4766 removes the unsafe link4767 with the scheme: JaVaScRiPt:4768 <a> tags4769 removes the unsafe link4770 <img> tags4771 removes the unsafe link4772 <video> tags4773 removes the unsafe link4774 <audio> tags4775 removes the unsafe link4776 with the scheme: javascript:4777 <a> tags4778 removes the unsafe link4779 <img> tags4780 removes the unsafe link4781 <video> tags4782 removes the unsafe link4783 <audio> tags4784 removes the unsafe link4785 with the scheme: javascript :4786 <a> tags4787 removes the unsafe link4788 <img> tags4789 removes the unsafe link4790 <video> tags4791 removes the unsafe link4792 <audio> tags4793 removes the unsafe link4794 with the scheme: javascript:4795 <a> tags4796 removes the unsafe link4797 <img> tags4798 removes the unsafe link4799 <video> tags4800 removes the unsafe link4801 <audio> tags4802 removes the unsafe link4803 with the scheme: javascript :4804 <a> tags4805 removes the unsafe link4806 <img> tags4807 removes the unsafe link4808 <video> tags4809 removes the unsafe link4810 <audio> tags4811 removes the unsafe link4812 with the scheme: :javascript:4813 <a> tags4814 removes the unsafe link4815 <img> tags4816 removes the unsafe link4817 <video> tags4818 removes the unsafe link4819 <audio> tags4820 removes the unsafe link4821 with the scheme: javascript:4822 <a> tags4823 removes the unsafe link4824 <img> tags4825 removes the unsafe link4826 <video> tags4827 removes the unsafe link4828 <audio> tags4829 removes the unsafe link4830 with the scheme: javascript:4831 <a> tags4832 removes the unsafe link4833 <img> tags4834 removes the unsafe link4835 <video> tags4836 removes the unsafe link4837 <audio> tags4838 removes the unsafe link4839 with the scheme:  javascript:4840 <a> tags4841 removes the unsafe link4842 <img> tags4843 removes the unsafe link4844 <video> tags4845 removes the unsafe link4846 <audio> tags4847 removes the unsafe link4848 when URI is valid4849 does not remove it4850 when URI is invalid4851 removes the link4852 when URI is encoded but still invalid4853 removes the link4854 #safe_protocol?4855 with the scheme: javascript:4856 returns false4857 with the scheme: JaVaScRiPt:4858 returns false4859 with the scheme: javascript:4860 returns false4861 with the scheme: javascript :4862 returns false4863 with the scheme: javascript:4864 returns false4865 with the scheme: javascript :4866 returns false4867 with the scheme: :javascript:4868 returns false4869 with the scheme: javascript:4870 returns false4871 with the scheme: javascript:4872 returns false4873 with the scheme:  javascript:4874 returns false4875TreeHelper4876 #commit_in_single_accessible_branch4877 escapes HTML from the branch name4878 #vue_file_list_data4879 returns a list of attributes related to the project4880 #web_ide_button_data4881 returns a list of attributes related to the project4882 a blob is passed4883 returns edit url and webide url for the blob4884 does not load blob from repository again4885 nil blob is passed4886 does not load blob from repository4887 user does not have write access but a personal fork exists4888 includes forked project path as project_path4889 a blob is passed4890 returns edit url and web ide for the blob in the fork4891 for archived project4892 does not show any buttons4893 user has write access4894 includes original project path as project_path4895 a blob is passed4896 returns edit url and web ide for the blob in the fork4897 gitpod settings is enabled4898 has show_gitpod_button: true4899 has gitpod_enabled: true when user has enabled gitpod4900 has gitpod_enabled: false when user has not enabled gitpod4901 has show_gitpod_button: false when web ide button is not shown4902 .patch_branch_name4903 returns a patch branch name4904 without a current_user4905 returns nil4906 .fork_modal_options4907 returns correct fork path4908 when show_edit_button true4909 returns correct fork path and modal id4910 when show_web_ide_button true4911 returns correct fork path and modal id4912Gitlab::ImportExport::AfterExportStrategies::BaseAfterExportStrategy4913 #execute4914 returns if project exported file is not found4915 creates a lock file in the export dir4916 when the method succeeds4917 removes the lock file4918 removes the archive path4919 when the method fails4920 when validation fails4921 does not create the lock file4922 does not execute main logic4923 logs validation errors in shared context4924 removes the archive path4925 when an exception is raised4926 removes the lock4927 #log_validation_errors4928 add the message to the shared context4929 #to_json4930 adds the current strategy class to the serialized attributes4931MergeRequests::EnsurePreparedWorker4932 # order random4933 #perform4934 when ensure_merge_requests_prepared is enabled4935 creates the expected NewMergeRequestWorkers of the unprepared merge requests4936 when ensure_merge_requests_prepared is disabled4937 does not prepare any merge requests4938 behaves like an idempotent worker4939 is labeled as idempotent4940 performs multiple times sequentially without raising an exception4941 creates the expected NewMergeRequestWorkers of the unprepared merge requests4942Users::UpdateService4943 #execute4944 updates time preferences4945 returns an error result when record cannot be updated4946 includes namespace error messages4947 updates the status if status params were given4948 does not delete the status if no status param was passed4949 includes status error messages4950 updates user detail with provided attributes4951 does not try to reset unconfirmed email for a new user4952 updating canonical email4953 if email was changed4954 calls canonicalize_email4955 when race condition4956 updates email for stale user4957 when check_password is true4958 returns error if no password confirmation was passed4959 returns error if wrong password confirmation was passed4960 does not require password if it was automatically set4961 does not require a password if the attribute changed does not require it4962 when check_password is left to false4963 does not require a password check4964 if email was NOT changed4965 skips update canonicalize email service call4966 does not reset unconfirmed email4967 updates the enabled_following4968WARNING: Active Record does not support composite primary key.4969user_follow_users has composite primary key. Composite primary key is ignored.4970 removes followers and followees4971 when there is more followers/followees then batch limit4972 removes followers and followees4973 #execute!4974 updates the name4975 raises an error when record cannot be updated4976 fires system hooks when a new user is saved4977Gitlab::UserAccessSnippet4978 #can_do_action?4979 when can access_git4980 calls Ability#allowed? and returns its result4981 when can not access_git4982 disallows access4983 when user is nil4984 disallows access4985 when user is migration bot4986 allows access4987 #can_push_to_branch?4988 anonymous4989 when can access_git4990 respects accessibility4991 when can not access_git4992 disallows access4993 non_member4994 when can access_git4995 respects accessibility4996 when can not access_git4997 disallows access4998 guest4999 when can access_git5000 respects accessibility5001 when can not access_git5002 disallows access5003 reporter5004 when can access_git5005 respects accessibility5006 when can not access_git5007 disallows access5008 maintainer5009 when can access_git5010 respects accessibility5011 when can not access_git5012 disallows access5013 admin5014 when can access_git5015 respects accessibility5016 when can not access_git5017 disallows access5018 author5019 when can access_git5020 respects accessibility5021 when can not access_git5022 disallows access5023 when user is migration bot5024 allows access5025 when snippet is nil5026 disallows access5027 when user is migration bot5028 disallows access5029 #can_create_tag?5030 returns false5031 when user is migration bot5032 returns false5033 #can_delete_branch?5034 returns false5035 when user is migration bot5036 returns false5037 #can_merge_to_branch?5038 returns false5039 when user is migration bot5040 returns false5041Quality::TestLevel5042 TEST_LEVEL_FOLDERS constant5043 ensures all directories it refers to exists5044 #pattern5045 when level is all5046 returns a pattern5047 when level is frontend_fixture5048 returns a pattern5049 when level is unit5050 returns a pattern5051 when level is migration5052 returns a pattern5053 when level is background_migration5054 returns a pattern5055 when level is integration5056 returns a pattern5057 when level is system5058 returns a pattern5059 with a prefix5060 returns a pattern5061 with several prefixes5062 returns a pattern5063 performance5064 memoizes the pattern for a given level5065 freezes the pattern for a given level5066 #regexp5067 when level is all5068 returns a regexp5069 when level is frontend_fixture5070 returns a regexp5071 when level is unit5072 returns a regexp5073 when level is migration5074 returns a regexp5075 when level is background_migration5076 returns a regexp5077 when level is integration5078 returns a regexp5079 when level is system5080 returns a regexp5081 with a prefix5082 returns a regexp5083 with several prefixes5084 returns a regexp5085 when start_with == true5086 returns a regexp5087 performance5088 memoizes the regexp for a given level5089 freezes the regexp for a given level5090 #level_for5091 returns the correct level for a unit test5092 returns the correct level for a frontend fixture test5093 returns the correct level for a tooling test5094 returns the correct level for a migration test5095 returns the correct level for a background migration test5096 returns the correct level for an EE file without passing a prefix5097 returns the correct level for a geo migration test5098 returns the correct level for a EE-namespaced background migration test5099 returns the correct level for an integration test5100 returns the correct level for an integration test in a subfolder5101 returns the correct level for a system test5102 raises an error for an unknown level5103 ensures all spec/ folders are covered by a test level5104Discussions::ResolveService5105 #execute5106 doesn't resolve discussions the user can't resolve5107 resolves the discussion5108 tracks thread resolve usage data5109 executes the notification service5110 schedules an auto-merge5111 sends GraphQL triggers5112 adds a system note to the discussion5113 can resolve multiple discussions at once5114 raises an argument error if discussions do not belong to the same noteable5115 with a project that requires all discussion to be resolved5116 does not schedule an auto-merge5117 schedules an auto-merge5118 when discussion is not for a merge request5119 does not execute the notification service5120 does not track thread resolve usage data5121 does not schedule an auto-merge5122 does not send GraphQL triggers5123 when resolving a discussion5124 in a design5125 when user resolving discussion has open todos5126 marks user todos for given discussion as done5127 in a merge request5128 does not mark user todo as done5129Projects::Members::EffectiveAccessLevelFinder#execute5130 for a personal project5131 when the project owner is a member of the project5132 behaves like includes access level of the owner of the project5133 includes access level of the owner of the project as Owner5134 when the project owner is not explicitly a member of the project5135 behaves like includes access level of the owner of the project5136 includes access level of the owner of the project as Owner5137 direct members of the project5138 includes access levels of the direct members of the project5139 does not include access levels of users who have requested access to the project5140 includes access levels of users who are in non-active state5141 for a project within a group5142 project in a root group5143 includes access levels of users who are direct members of the parent group5144 when access level is developer5145 when access level is owner5146 project in a subgroup5147 includes access levels of users who are members of the ancestors of the parent group5148 user is both a member of the project and a member of the parent group5149 includes the maximum access level among project and group membership5150 members from group share5151 includes the user from the group share with the right access level5152 when the project also has the same user as a member, but with a different access level5153 includes the maximum access level among project and group membership5154 when the project's ancestor also has the same user as a member, but with a different access level5155 includes the maximum access level among project and group membership5156 for a project that is shared with other group(s)5157 includes the least among the specified access levels5158 even when the `lock_memberships_to_ldap` setting has been turned ON5159 includes the least among the specified access levels5160 when the group containing the project has forbidden group shares for any of its projects5161 does not include the users from any group shares5162 a combination of all possible avenues of membership5163 includes the highest access level from all avenues of memberships5164Mutations::Issues::SetConfidential5165 is expected to require graphql authorizations :update_issue5166 #resolve5167 behaves like permission level for issue mutation is correctly verified5168 when the user is not a project member5169 behaves like when the user does not have access to the resource5170 raises an error5171 even if assigned to the issue5172 does not modify issue5173 even if author of the issue5174 does not modify issue5175 when the user is a project member5176 with guest role5177 behaves like when the user does not have access to the resource5178 raises an error5179 even if assigned to the issue5180 does not modify issue5181 even if author of the issue5182 does not modify issue5183 when the user can update the issue5184 returns the issue as confidential5185 when passing confidential as false5186 updates the issue confidentiality to false5187 when guest user is an assignee5188 does not change issue confidentiality5189Gitlab::Usage::MetricDefinition5190 has only valid definitions5191 not_removed5192 includes metrics that are not removed5193 #with_instrumentation_class5194 includes definitions with instrumentation_class5195 with removed metric5196 excludes removed definitions5197 #key5198 returns a symbol from name5199 #to_context5200 with data_source redis_hll metric5201 returns a ServicePingContext with first event as event_name5202 with data_source redis metric5203 returns a ServicePingContext with first event as event_name5204 with data_source database metric5205 returns nil5206 #validate5207 attribute: :description, value: nil5208 raise exception5209 attribute: :value_type, value: nil5210 raise exception5211 attribute: :value_type, value: "test"5212 raise exception5213 attribute: :status, value: nil5214 raise exception5215 attribute: :milestone, value: 10.05216 raise exception5217 attribute: :data_category, value: nil5218 raise exception5219 attribute: :key_path, value: nil5220 raise exception5221 attribute: :product_group, value: nil5222 raise exception5223 attribute: :time_frame, value: nil5224 raise exception5225 attribute: :time_frame, value: "29d"5226 raise exception5227 attribute: :data_source, value: "other"5228 raise exception5229 attribute: :data_source, value: nil5230 raise exception5231 attribute: :distribution, value: nil5232 raise exception5233 attribute: :distribution, value: "test"5234 raise exception5235 attribute: :tier, value: ["test", "ee"]5236 raise exception5237 attribute: :repair_issue_url, value: nil5238 raise exception5239 attribute: :removed_by_url, value: 15240 raise exception5241 attribute: :performance_indicator_type, value: nil5242 raise exception5243 attribute: :instrumentation_class, value: "Metric_Class"5244 raise exception5245 attribute: :instrumentation_class, value: "metricClass"5246 raise exception5247 conditional validations5248 when metric has broken status5249 has to have repair issue url provided5250 #events5251 when metric is not event based5252 returns empty hash5253 when metric is using old format5254 returns a correct hash5255 when metric is using new format5256 returns a correct hash5257 when metric is using both formats5258 uses the new format5259 #valid_service_ping_status?5260 when metric has active status5261 has to return true5262 when metric has removed status5263 has to return false5264 .load_all!5265 has empty list when there are no definition files5266 has one metric when there is one file5267 when the same metric is defined multiple times raises exception5268 dump_metrics_yaml5269 returns a YAML with both metrics in a sequence5270Gitlab::MultiCollectionPaginator5271 raises an error for invalid page size5272 combines both collections5273 includes elements second collection if first collection is empty5274 with a full first page5275 knows the total count of the collection5276 fills the first page with elements of the first collection5277 fils the second page with a mixture of the first & second collection5278 fils the last page with elements from the second collection5279Banzai::Pipeline::GfmPipeline5280 integration between parsing regular and external issue references5281 when internal issue tracker is enabled5282 executes :each_node only once for first reference filter5283 allows to use long external reference syntax for Redmine5284 parses cross-project references to regular issues5285 when shorthand pattern #ISSUE_ID is used5286 links an internal issues and keep updated nodes in result[:reference_filter_nodes]5287 when shorthand pattern #ISSUE_ID is used5288 links an internal issue if it exists5289 does not link any issue if it does not exist on GitLab5290 when internal issue tracker is disabled5291 allows to use shorthand external reference syntax for Redmine5292 allows to use long external reference syntax for Redmine5293 parses cross-project references to regular issues5294 markdown link or image urls having spaces5295 rewrites links with spaces in url5296 rewrites images with spaces in url5297 sanitizes the fixed link5298 emoji in references5299 renders a label reference with emoji inside5300 renders a milestone reference with emoji inside5301 asset proxy5302 replaces a lazy loaded img src5303 autolinks images to the proxy5304 properly adds tooltips to link for IDN images5305Gitlab::AlertManagement::Payload::Generic5306 behaves like subclass has expected api5307 defines all public methods in the base class5308 #title5309 behaves like parsable alert payload field with fallback5310 without payload5311 is expected to eq "New: Alert"5312 with title5313 is expected to eq "some value"5314 #severity5315 when set5316 payload_severity: "critical", expected_severity: :critical5317 is expected to eq :critical5318 payload_severity: "high", expected_severity: :high5319 is expected to eq :high5320 payload_severity: "medium", expected_severity: :medium5321 is expected to eq :medium5322 payload_severity: "low", expected_severity: :low5323 is expected to eq :low5324 payload_severity: "info", expected_severity: :info5325 is expected to eq :info5326 payload_severity: "CRITICAL", expected_severity: :critical5327 is expected to eq :critical5328 payload_severity: "cRiTiCaL", expected_severity: :critical5329 is expected to eq :critical5330 payload_severity: "unmapped", expected_severity: nil5331 is expected to eq nil5332 payload_severity: 1, expected_severity: nil5333 is expected to eq nil5334 payload_severity: nil, expected_severity: nil5335 is expected to eq nil5336 without key5337 is expected to be nil5338 #monitoring_tool5339 behaves like parsable alert payload field5340 behaves like parsable alert payload field with fallback5341 without payload5342 is expected to eq nil5343 with monitoring_tool5344 is expected to eq "some value"5345 #service5346 behaves like parsable alert payload field5347 behaves like parsable alert payload field with fallback5348 without payload5349 is expected to eq nil5350 with service5351 is expected to eq "some value"5352 #hosts5353 behaves like parsable alert payload field5354 behaves like parsable alert payload field with fallback5355 without payload5356 is expected to eq nil5357 with hosts5358 is expected to eq "some value"5359 #starts_at5360 without start_time5361 is expected to eq 2023-10-20 08:53:43.000000000 +00005362 with start_time5363 is expected to eq 2023-10-20 08:43:43.000000000 +00005364 #runbook5365 behaves like parsable alert payload field5366 behaves like parsable alert payload field with fallback5367 without payload5368 is expected to eq nil5369 with runbook5370 is expected to eq "some value"5371 #gitlab_fingerprint5372 returns a fingerprint5373 #environment_name5374 behaves like parsable alert payload field5375 behaves like parsable alert payload field with fallback5376 without payload5377 is expected to eq nil5378 with gitlab_environment_name5379 is expected to eq "some value"5380 #description5381 behaves like parsable alert payload field5382 behaves like parsable alert payload field with fallback5383 without payload5384 is expected to eq nil5385 with description5386 is expected to eq "some value"5387 #ends_at5388 without end_time5389 is expected to be nil5390 with end_time5391 is expected to eq 2023-10-20 08:43:43.000000000 +00005392 #resolved?5393 without end time5394 is expected to eq false5395 with end time5396 is expected to eq true5397 #source5398 is expected to eq "Generic Alert Endpoint"5399 with alerting integration provided5400 is expected to eq "INTEGRATION"5401 with monitoring tool defined in the raw payload5402 is expected to eq "TOOL"5403Gitlab::Cache::Helpers5404 #render_cached5405 single object5406 when presenter is a serializer5407 behaves like object cache helper5408 is expected to be a kind of Gitlab::Json::PrecompiledJson5409 uses the presenter5410 is valid JSON5411 fetches from the cache5412 when a cache context is supplied5413 uses the context to augment the cache key5414 when expires_in is supplied5415 sets the expiry when accessing the cache5416 when a caller id is present5417 increments the counter5418 when presenter is a Grape::Entity5419 behaves like object cache helper5420 is expected to be a kind of Gitlab::Json::PrecompiledJson5421 uses the presenter5422 is valid JSON5423 fetches from the cache5424 when a cache context is supplied5425 uses the context to augment the cache key5426 when expires_in is supplied5427 sets the expiry when accessing the cache5428 when a caller id is present5429 increments the counter5430 collection of objects5431 behaves like collection cache helper5432 is expected to be a kind of Gitlab::Json::PrecompiledJson5433 uses the presenter5434 is valid JSON5435 fetches from the cache5436 when a cache context is supplied5437 uses the context to augment the cache key5438 expires_in is supplied5439 sets the expiry when accessing the cache5440 when a caller id is present5441 when presentable has a group by clause5442 returns the presentables5443 when the presentables all miss5444 increments the counters5445 when the presents hit5446 increments the counters5447 when passed presenter is not a serializer or an entity5448 throws an exception5449MergeRequests::ExportCsvService5450 csv_data5451 contains the correct information5452 assignees5453 when assigned5454 contains the names of assignees5455 contains the usernames of assignees5456 when not assigned5457 returns empty strings5458 approvers5459 when approved5460 contains the names of approvers separated by a comma5461 contains the usernames of approvers separated by a comma5462 when not approved5463 returns empty strings5464 merged user5465 MR is merged5466 is merged5467 has a merged user5468 MR is not merged5469 returns empty strings5470 milestone5471 milestone is assigned5472 contains the milestone ID5473 no milestone is assigned5474 returns an empty string5475 #email5476 emails csv5477 renders with a target filesize5478Gitlab::HttpIO5479 #close5480 is expected to be nil5481 #binmode5482 is expected to be nil5483 #binmode?5484 is expected to be truthy5485 #path5486 is expected to be nil5487 #url5488 is expected to eq "http://object-storage/trace"5489 #seek5490 when moves pos to end of the file5491 is expected to eq 1924415492 when moves pos to middle of the file5493 is expected to eq 962205494 when moves pos around5495 matches the result5496 #eof?5497 when current pos is at end of the file5498 is expected to be truthy5499 when current pos is not at end of the file5500 is expected to be falsey5501 #each_line5502 yields lines5503 when buckets on GCS5504 when BUFFER_SIZE is larger than file size5505 calls get_chunk only once5506 #read5507 when there are no network issue5508 when read whole size5509 when BUFFER_SIZE is smaller than file size5510 reads a trace5511 when BUFFER_SIZE is larger than file size5512 reads a trace5513 when read only first 100 bytes5514 when BUFFER_SIZE is smaller than file size5515 reads a trace5516 when BUFFER_SIZE is larger than file size5517 reads a trace5518 when tries to read oversize5519 when BUFFER_SIZE is smaller than file size5520 reads a trace5521 when BUFFER_SIZE is larger than file size5522 reads a trace5523 when tries to read 0 bytes5524 when BUFFER_SIZE is smaller than file size5525 reads a trace5526 when BUFFER_SIZE is larger than file size5527 reads a trace5528 when there is anetwork issue5529 reads a trace5530 #readline5531 when there is anetwork issue5532 reads a trace5533 when BUFFER_SIZE is smaller than file size5534 behaves like all line matching5535 reads a line5536 when BUFFER_SIZE is larger than file size5537 behaves like all line matching5538 reads a line5539 when pos is at middle of the file5540 reads from pos5541 #write5542 is expected to raise NotImplementedError5543 #truncate5544 is expected to raise NotImplementedError5545 #flush5546 is expected to raise NotImplementedError5547 #present?5548 is expected to be truthy5549 #send5550 does not set the "accept-encoding" header5551Gitlab::DiscussionsDiff::FileCollection5552 #load_highlight5553 writes uncached diffs highlight5554 does not write cache for already cached file5555 does not write cache for empty mapping5556 does not write cache for resolved notes5557 loaded diff files have highlighted lines loaded5558 not loaded diff files does not have highlighted lines loaded5559Packages::Maven::PackageFinder5560 uses CTE in the query5561 #execute5562 within the project5563 behaves like handling valid and invalid paths5564 with a valid path5565 is expected to include #<Packages::Package id: 272, project_id: 772, created_at: "2023-10-20 08:54:06.544653000 +0000", upda...ge_type: "maven", creator_id: 1214, status: "default", last_downloaded_at: nil, status_message: nil>5566 with an invalid path5567 returns an empty array5568 with an uninstallable package5569 returns an empty array5570 within a group5571 behaves like handling valid and invalid paths5572 with a valid path5573 is expected to include #<Packages::Package id: 272, project_id: 772, created_at: "2023-10-20 08:54:06.544653000 +0000", upda...ge_type: "maven", creator_id: 1214, status: "default", last_downloaded_at: nil, status_message: nil>5574 with an invalid path5575 returns an empty array5576 with an uninstallable package5577 returns an empty array5578 across all projects5579 returns an empty array5580 versionless maven-metadata.xml package5581 without order by package file5582 is expected to contain exactly #<Packages::Package id: 274, project_id: 774, created_at: "2023-10-20 08:54:09.673284256 +0000", upda...ge_type: "maven", creator_id: 1217, status: "default", last_downloaded_at: nil, status_message: nil>, #<Packages::Package id: 276, project_id: 775, created_at: "2023-10-20 08:54:09.978024887 +0000", upda...ge_type: "maven", creator_id: 1219, status: "default", last_downloaded_at: nil, status_message: nil>, and #<Packages::Package id: 278, project_id: 776, created_at: "2023-10-20 08:54:10.277905918 +0000", upda...ge_type: "maven", creator_id: 1221, status: "default", last_downloaded_at: nil, status_message: nil>5583 with order by package file5584 is expected to eq #<Packages::Package id: 276, project_id: 775, created_at: "2023-10-20 08:54:09.978024887 +0000", upda...ge_type: "maven", creator_id: 1219, status: "default", last_downloaded_at: nil, status_message: nil>5585Ci::StuckBuilds::DropPendingService5586 when job is pending5587 when job is not stuck5588 when job was updated_at more than 1 day ago5589 when created_at is the same as updated_at5590 behaves like job is dropped with failure reason5591 changes status5592 when job has data integrity problem5593 drops the job and logs the reason5594 when created_at is before updated_at5595 behaves like job is dropped with failure reason5596 changes status5597 when job has data integrity problem5598 drops the job and logs the reason5599 when job was updated less than 1 day ago5600 when created_at is the same as updated_at5601 behaves like job is unchanged5602 does not change status5603 when created_at is before updated_at5604 behaves like job is unchanged5605 does not change status5606 when job was updated more than 1 hour ago5607 when created_at is the same as updated_at5608 behaves like job is unchanged5609 does not change status5610 when created_at is before updated_at5611 behaves like job is unchanged5612 does not change status5613 when job is stuck5614 when job was updated_at more than 1 hour ago5615 when created_at is the same as updated_at5616 behaves like job is dropped with failure reason5617 changes status5618 when job has data integrity problem5619 drops the job and logs the reason5620 when created_at is before updated_at5621 behaves like job is dropped with failure reason5622 changes status5623 when job has data integrity problem5624 drops the job and logs the reason5625 when job was updated in less than 1 hour ago5626 when created_at is the same as updated_at5627 behaves like job is unchanged5628 does not change status5629 when created_at is before updated_at5630 behaves like job is unchanged5631 does not change status5632 when job is running5633 when job was updated_at more than an hour ago5634 behaves like job is unchanged5635 does not change status5636 when job was updated in less than 1 hour ago5637 behaves like job is unchanged5638 does not change status5639 when job is success5640 when created_at is the same as updated_at5641 behaves like job is unchanged5642 does not change status5643 when created_at is before updated_at5644 behaves like job is unchanged5645 does not change status5646 when job is skipped5647 when created_at is the same as updated_at5648 behaves like job is unchanged5649 does not change status5650 when created_at is before updated_at5651 behaves like job is unchanged5652 does not change status5653 when job is failed5654 when created_at is the same as updated_at5655 behaves like job is unchanged5656 does not change status5657 when created_at is before updated_at5658 behaves like job is unchanged5659 does not change status5660 when job is canceled5661 when created_at is the same as updated_at5662 behaves like job is unchanged5663 does not change status5664 when created_at is before updated_at5665 behaves like job is unchanged5666 does not change status5667 for deleted project5668 behaves like job is unchanged5669 does not change status5670Ci::PlayBridgeService#execute5671 when user can run the bridge5672 marks the bridge pending5673 updates bridge's user5674 enqueues Ci::CreateDownstreamPipelineWorker5675 when a subsequent job is skipped5676 marks the subsequent job as processable5677 when bridge is not playable5678 raises StateMachines::InvalidTransition5679 when user can not run the bridge5680 allows user with developer role to play a bridge5681Gitlab::Ci::Pipeline::Chain::Populate5682 when pipeline doesn not have seeds block5683 does not persist the pipeline5684 does not break the chain5685 populates pipeline with stages5686 correctly assigns user5687 has pipeline iid5688 when pipeline is empty5689 breaks the chain5690 appends an error about missing stages5691 wastes pipeline iid5692 increments the error metric5693 pipeline protect5694 when ref is protected5695 does not protect the pipeline5696 when ref is not protected5697 does not protect the pipeline5698 when pipeline has validation errors5699 breaks the chain5700 appends validation error5701 wastes pipeline iid5702 when there is a seed blocks present5703 when seeds block builds some resources5704 populates pipeline with resources described in the seeds block5705 has pipeline iid5706 when seeds block tries to persist some resources5707 raises error5708 when pipeline gets persisted during the process5709 raises error5710 when variables policy is specified5711 when using only/except build policies5712 behaves like a correct pipeline5713 populates pipeline according to used policies5714 when variables expression is specified5715 when pipeline iid is the subject5716 behaves like a correct pipeline5717 populates pipeline according to used policies5718Banzai::Filter::SyntaxHighlightFilter5719 when no language is specified5720 highlights as plaintext5721 escapes HTML tags5722 when contains mermaid diagrams5723 ignores mermaid blocks5724 when <pre> contains multiple <code> tags5725 ignores the block5726 when <pre><code> is a child of <pre><code> which is a child of a div5727 captures all text and doesn't fail trying to replace a node with no parent5728 when a valid language is specified5729 highlights as that language5730 escapes HTML tags5731 when an invalid language is specified5732 highlights as plaintext5733 escapes HTML tags5734 languages that should be passed through5735 when math is specified5736 highlights as plaintext but with the correct language attribute and class5737 escapes HTML tags5738 when mermaid is specified5739 highlights as plaintext but with the correct language attribute and class5740 escapes HTML tags5741 when plantuml is specified5742 highlights as plaintext but with the correct language attribute and class5743 escapes HTML tags5744 when suggestion is specified5745 highlights as plaintext but with the correct language attribute and class5746 escapes HTML tags5747 when sourcepos metadata is available5748 includes it in the highlighted code block5749 escape sourcepos metadata to prevent XSS5750 when Rouge lexing fails5751 highlights as plaintext5752 escapes HTML tags5753 when Rouge lexing fails after a retry5754 does not add highlighting classes5755 escapes HTML tags5756 behaves like html filter timeout5757 when rendering takes too long5758 times out5759Projects::Topic5760 is expected to be valid5761 modules5762 is expected to includes the Avatarable module5763 associations5764 is expected to have many project_topics5765 is expected to have many projects5766 validations5767 is expected to validate that :name cannot be empty/falsy5768 is expected to validate that :name is case-insensitively unique5769 is expected to validate that the length of :name is at most 2555770 is expected to validate that the length of :description is at most 10245771 is expected to validate that :title cannot be empty/falsy5772 is expected to validate that the length of :title is at most 2555773 is expected not to allow :name to be ‹"new\nline"›, producing a custom validation error on failure5774 is expected not to allow :name to be ‹"new\rline"›, producing a custom validation error on failure5775 is expected not to allow :name to be ‹"new\vline"›, producing a custom validation error on failure5776 scopes5777 without_assigned_projects5778 returns topics without assigned projects5779 order_by_non_private_projects_count5780 sorts topics by non_private_projects_count5781 reorder_by_similarity5782 sorts topics by similarity5783 #find_by_name_case_insensitive5784 returns topic with case insensitive name5785 #search5786 returns topics with a matching name5787 returns topics with a partially matching name5788 returns topics with a matching name regardless of the casing5789 #avatar_type5790 is true if avatar is image5791 is false if avatar is html page5792 #avatar_url5793 when avatar file is uploaded5794 shows correct avatar url5795 #title_or_name5796 returns title if set5797 returns name if title not set5798Ci::RefDeleteUnlockArtifactsWorker5799 #perform5800 when project exists5801 when user exists5802 when ci ref exists for project5803 calls the enqueue pipelines to unlock service5804 when ci ref does not exist for the given project5805 does not call the service5806 when same ref path exists for a different project5807 calls the enqueue pipelines to unlock service with the correct ref5808 when user does not exist5809 does not call the service5810 when project does not exist5811 does not call the service5812 behaves like an idempotent worker5813 is labeled as idempotent5814 performs multiple times sequentially without raising an exception5815 enqueues all pipelines for the ref to be unlocked5816Resolvers::Users::ParticipantsResolver5817 #resolve5818 when current user is not set5819 returns only publicly visible participants for this user5820 when current user does not have enough permissions5821 returns only publicly visible participants for this user5822 when current user has access to internal notes5823 returns all participants for this user5824 N+1 queries5825 does not execute N+1 for project relation5826 does not execute N+1 for system note metadata relation5827Deployments::HooksWorker5828 #perform5829 logs deployment and project IDs as metadata5830 executes project services for deployment_hooks5831 does not execute an inactive service5832 does not execute if a deployment does not exist5833 execute webhooks5834 behaves like worker with data consistency5835 .get_data_consistency_feature_flag_enabled?5836 returns true5837 .get_data_consistency5838 returns correct data consistency5839Ci::GenerateCoverageReportsService5840 #execute5841 when head pipeline has coverage reports5842 returns status and data5843 when head pipeline does not have a coverage report artifact5844 returns status and error message5845 when head pipeline has coverage reports and no merge request associated5846 returns status and error message5847 #latest?5848 when cache key is latest5849 is expected to be truthy5850 when head pipeline has been updated5851 is expected to be falsy5852 when cache key is empty5853 is expected to be falsy5854 when the pipeline has a child that is updated5855 is expected to be falsy5856Gitlab::Ci::Status::Build::FailedAllowed5857 #text5858 does not override status text5859 #icon5860 returns a warning icon5861 #label5862 returns information about failed but allowed to fail status5863 #group5864 returns status failed with warnings status group5865 action details5866 #has_action?5867 does not decorate action details5868 #action_path5869 does not decorate action path5870 #action_icon5871 does not decorate action icon5872 #action_title5873 does not decorate action title5874 #badge_tooltip5875 does override badge_tooltip5876 #status_tooltip5877 does override status_tooltip5878 .matches?5879 when build is failed5880 when build is allowed to fail5881 is a correct match5882 when build is not allowed to fail5883 is not a correct match5884 when build did not fail5885 when build is allowed to fail5886 is not a correct match5887 when build is not allowed to fail5888 is not a correct match5889Verify/Load-Performance-Testing.gitlab-ci.yml5890 the created pipeline5891 has no errors5892 on master5893 behaves like load_performance job on tag or branch5894 by default5895 on another branch5896 behaves like load_performance job on tag or branch5897 by default5898 on tag5899 behaves like load_performance job on tag or branch5900 by default5901 on merge request5902 has no jobs5903ErrorTracking::SentryClient::Projects5904 # order random5905 #projects5906 behaves like calls sentry api5907 calls sentry api5908 behaves like has correct return type5909 returns objects of type Gitlab::ErrorTracking::Project5910 behaves like has correct length5911 is expected to eq 25912 behaves like Sentry API response size limit5913 raises an exception when response is too large5914 essential keys missing in API response5915 raises exception5916 optional keys missing in sentry response5917 behaves like calls sentry api5918 calls sentry api5919 behaves like has correct return type5920 returns objects of type Gitlab::ErrorTracking::Project5921 behaves like has correct length5922 is expected to eq 15923 error object created from sentry response5924 sentry_project_object: :id, sentry_response: :id5925 is expected to eq "2"5926 sentry_project_object: :name, sentry_response: :name5927 is expected to eq "sentry-example"5928 sentry_project_object: :status, sentry_response: :status5929 is expected to eq "active"5930 sentry_project_object: :slug, sentry_response: :slug5931 is expected to eq "sentry-example"5932 sentry_project_object: :organization_name, sentry_response: [:organization, :name]5933 is expected to eq "Sentry"5934 sentry_project_object: :organization_id, sentry_response: [:organization, :id]5935 is expected to eq "1"5936 sentry_project_object: :organization_slug, sentry_response: [:organization, :slug]5937 is expected to eq "sentry"5938 redirects5939 behaves like no Sentry redirects5940 does not follow redirects5941 when exception is raised5942 behaves like maps Sentry exceptions5943 HTTParty::Error5944 is expected to raise ErrorTracking::SentryClient::Error with "Error when connecting to Sentry"5945 Net::OpenTimeout5946 is expected to raise ErrorTracking::SentryClient::Error with "Connection to Sentry timed out"5947 SocketError5948 is expected to raise ErrorTracking::SentryClient::Error with "Received SocketError when trying to connect to Sentry"5949 OpenSSL::SSL::SSLError5950 is expected to raise ErrorTracking::SentryClient::Error with "Sentry returned invalid SSL data"5951 Errno::ECONNREFUSED5952 is expected to raise ErrorTracking::SentryClient::Error with "Connection refused"5953 StandardError5954 is expected to raise ErrorTracking::SentryClient::Error with "Sentry request failed due to StandardError"5955Pajamas::ToggleComponent5956 with defaults5957 renders a toggle container with provided class5958 does not set a name5959 sets default is-checked attributes5960 sets default disabled attributes5961 sets default is-loading attributes5962 does not set a label5963 does not set a label position5964 with custom options5965 sets the custom class5966 sets the custom name5967 sets the custom is-checked attributes5968 sets the custom disabled attributes5969 sets the custom is-loading attributes5970 sets the custom label5971 sets the custom label position5972 sets custom data attributes5973 with setting label_position5974 position: :top, count: 15975 is expected to have visible css "[data-label-position='top']"5976 position: :left, count: 15977 is expected to have visible css "[data-label-position='left']"5978 position: :hidden, count: 15979 is expected to have visible css "[data-label-position='hidden']"5980 position: :bogus, count: 05981 is expected to have visible css "[data-label-position='bogus']"5982 position: "bogus", count: 05983 is expected to have visible css "[data-label-position='bogus']"5984 position: nil, count: 05985 is expected to have visible css "[data-label-position='']"5986Sortable5987 scopes5988 secondary ordering by id5989 allows secondary ordering by id ascending5990 allows secondary ordering by id descending5991 .order_by5992 does not call reorder in case of unrecognized ordering5993 ordering by id5994 ascending5995 descending5996 ordering by created day5997 ascending5998 descending5999 order by "date"6000 ordering by name6001 ascending6002 descending6003 ordering by Updated Time6004 ascending6005 descending6006 sorting groups6007 sorts groups by id6008 sorts groups by name via case-insensitive comparision6009 sorts groups by created_at6010 sorts groups by updated_at6011OauthAccessToken6012 scopes6013 .latest_per_application6014 returns only the latest token for each application6015 Doorkeeper secret storing6016 does not have a prefix6017 stores the token in hashed format6018 does not allow falling back to plaintext token comparison6019 finds a token by plaintext token6020 when the token is stored in plaintext6021 falls back to plaintext token comparison6022 .matching_token_for6023 does not find existing tokens6024 #expires_in6025 when token has expires_in value set6026 uses the expires_in value6027 when token has nil expires_in6028 uses default value6029Gitlab::Ci::Config::Entry::Rules::Rule::Changes6030 .new6031 when using a string array6032 is expected to be valid6033 when using an integer array6034 is expected not to be valid6035 returns errors6036 when using a string6037 is expected not to be valid6038 reports an error about invalid policy6039 when using a long array6040 is expected not to be valid6041 returns errors6042 when clause is empty6043 is expected to be valid6044 when policy strategy does not match6045 is expected not to be valid6046 returns information about errors6047 with paths6048 when paths is an array of strings6049 is expected to be valid6050 when paths is not an array6051 is expected not to be valid6052 returns information about errors6053 when paths is an array of integers6054 is expected not to be valid6055 returns information about errors6056 when paths is an array of long strings6057 is expected not to be valid6058 returns information about errors6059 when paths is nil6060 is expected not to be valid6061 returns information about errors6062 with paths and compare_to6063 is expected to be valid6064 when compare_to is not a string6065 is expected not to be valid6066 returns information about errors6067 #value6068 when using a string array6069 is expected to eq {:paths=>["app/", "lib/", "spec/", "other/*", "paths/**/*.rb"]}6070 with paths6071 is expected to eq {:paths=>["app/", "lib/"]}6072 with paths and compare_to6073 is expected to eq {:compare_to=>"branch1", :paths=>["app/", "lib/"]}6074Packages::Debian::SignDistributionService6075 behaves like Sign Distribution6076 for project detach=false6077 #execute6078 without an existing key6079 raises ArgumentError6080 with an existing key6081 returns the content signed6082 behaves like Sign Distribution6083 for project detach=true6084 #execute6085 without an existing key6086 raises ArgumentError6087 with an existing key6088 returns the content signed6089 behaves like Sign Distribution6090 for group detach=false6091 #execute6092 without an existing key6093 raises ArgumentError6094 with an existing key6095 returns the content signed6096 behaves like Sign Distribution6097 for group detach=true6098 #execute6099 without an existing key6100 raises ArgumentError6101 with an existing key6102 returns the content signed6103Gitlab::ImportExport::RepoRestorer6104 bundle a project Git repo6105 restores the repo successfully6106 when the repository already exists6107 deletes the existing repository before importing6108 restore a wiki Git repo6109 restores the wiki repo successfully6110 no wiki in the bundle6111 does not creates an empty wiki6112 when wiki already exists6113 does not cause an error when restoring6114Gitlab::Analytics::CycleAnalytics::BaseQueryBuilder6115 scopes query within the target project6116 when an unknown parent class is given6117 raises error6118 date range parameters6119 when filters by only the `from` parameter6120 is expected to eq 26121 when filters by both `from` and `to` parameters6122 is expected to eq 16123 invalid date range is provided6124 is expected to eq 06125 in progress filter6126 when the filter is present6127 returns only open items6128 when the filter is absent6129 returns finished items6130Atlassian::JiraConnect::Serializers::DeploymentEntity6131 # order random6132 #to_json6133 when the deployment does not belong to any Jira issue6134 can encode the object6135 is invalid, since it has no issue keys6136 when the deployment belongs to Jira issue6137 is valid according to the deployment info schema6138 environment type6139 tier: "other", env_type: "unmapped"6140 has the same type as the environment tier6141 #issue_keys6142 extracts issue keys from the commits6143 limits the number of commits scanned6144 when deploy happened at an older commit6145 extracts only issue keys from that commit or older6146 when the deployment has an associated merge request6147 includes issue keys extracted from the merge request6148 when there was a successful deploy to the environment6149 behaves like extracts only issue keys from commits made since that deployment6150 is expected to contain exactly "add a" and "add d"6151 when the deploy was for a different environment6152 behaves like ignores that deployment6153 is expected to contain exactly "add a", "add d", and "added"6154 when the deploy was for a different branch or tag6155 behaves like ignores that deployment6156 is expected to contain exactly "add a", "add d", and "added"6157 when the deploy was not successful6158 behaves like ignores that deployment6159 is expected to contain exactly "add a", "add d", and "added"6160 when the deploy commit cannot be found6161 behaves like ignores that deployment6162 is expected to contain exactly "add a", "add d", and "added"6163 when there is a more recent deployment6164 extracts only issue keys from commits made since that deployment6165 when deployment is an external deployment6166 does not raise errors when serializing6167MergeRequests::DeleteNonLatestDiffsService6168 #execute6169 schedules no removal if it is already cleaned6170 schedules no removal if it is empty6171 schedules no removal if there is no non-latest diffs6172Banzai::Filter::TableOfContentsFilter6173 does nothing when :no_header_anchors is truthy6174 does nothing with empty headers6175 processes h1 elements6176 processes h2 elements6177 processes h3 elements6178 processes h4 elements6179 processes h5 elements6180 processes h6 elements6181 anchor tag6182 has an `anchor` class6183 has a namespaced id6184 links to the non-namespaced id6185 generated IDs6186 translates spaces to dashes6187 squeezes multiple spaces and dashes6188 removes punctuation6189 removes any leading or trailing spaces6190 removes a product suffix6191 appends a unique number to duplicates6192 prepends a prefix to digits-only ids6193 supports Unicode6194 limits header href length with 255 characters6195 result6196 is contained within a `ul` element6197 contains an `li` element for each header6198 table of contents nesting6199 keeps list levels regarding header levels6200 header text contains escaped content6201 outputs escaped content6202AuthenticationEvent6203 associations6204 is expected to belong to user optional: true6205 validations6206 is expected to validate that :provider cannot be empty/falsy6207 is expected to validate that :user_name cannot be empty/falsy6208 is expected to validate that :result cannot be empty/falsy6209 is expected to allow :ip_address to be ‹"192.168.17.43"›6210 is expected to allow :ip_address to be ‹"2001:0db8:85a3:0000:0000:8a2e:0370:7334"›6211 is expected not to allow :ip_address to be ‹"invalid IP"›6212 scopes6213 .for_provider6214 returns events only for the specified provider6215 .ldap6216 returns all events for an LDAP provider6217 .providers6218 returns an array of distinct providers6219 .initial_login_or_known_ip_address?6220 on first login, when no record exists yet6221 is expected to eq true6222 on second login from the same ip address6223 is expected to eq true6224 on second login from another ip address6225 is expected to eq false6226 .most_used_ip_address_for_user6227 is expected to eq "::1"6228Gitlab::Asciidoc::IncludeProcessor6229 read_lines6230 when reading a file in the repository6231 returns the blob contents6232 allows at most N blob includes6233 when the blob does not exist6234 raises NoData6235 when there is a selector6236 selects the lines6237 when reading content from a URL6238 fetches the data using a GET request6239 allows at most N HTTP includes6240 when the URI returns 4046241 raises NoData6242 when there is a selector6243 selects the lines6244 #include_allowed?6245 allows the first include6246 allows the Nth include6247 disallows the Nth + 1 include6248 when allow-uri-read is nil6249 allows http includes6250 allows blob includes6251 when allow-uri-read is false6252 allows http includes6253 allows blob includes6254 when allow-uri-read is true6255 allows http includes6256 allows blob includes6257 without allow-uri-read6258 forbids http includes6259 allows blob includes6260Clusters::Agents::Authorizations::CiAccess::ConfigScopes6261 # order random6262 .with_available_ci_access_fields6263 is expected to contain exactly #<Clusters::Agents::Authorizations::CiAccess::ProjectAuthorization id: 1, project_id: 850, agent_id: 1, config: {"default_namespace"=>"production"}>, #<Clusters::Agents::Authorizations::CiAccess::ProjectAuthorization id: 2, project_id: 850, agent_id: 2, config: {"access_as"=>{}}>, and #<Clusters::Agents::Authorizations::CiAccess::ProjectAuthorization id: 3, project_id: 850, agent_id: 3, config: {"access_as"=>{"agent"=>{}}}>6264FinderWithGroupHierarchy6265 when specifying group6266 returns only the group by default6267 when specifying group_id6268 returns only the group by default6269 when including items from group ancestors6270 returns group and its ancestors6271 ignores groups which user can not read6272 returns them all when skip_authorization is true6273 when including items from group descendants6274 returns items from group and its descendants6275 ignores items from groups which user can not read6276 returns them all when skip_authorization is true6277 with N+1 query check6278 does not produce N+1 query6279gitlab:feature_categories:index6280 # order random6281 outputs objects by stage group6282Gitlab::Ci::Pipeline::Expression::Lexeme::And6283 .build6284 creates a new instance of the token6285 with non-evaluable operands6286 raises an operator error6287 .type6288 is an operator6289 .precedence6290 has a precedence6291 #evaluate6292 when left and right are truthy6293 left_value: true, right_value: 16294 is expected to be truthy6295 is expected to eq 16296 left_value: true, right_value: "a"6297 is expected to be truthy6298 is expected to eq "a"6299 left_value: 1, right_value: true6300 is expected to be truthy6301 is expected to eq true6302 left_value: 1, right_value: "a"6303 is expected to be truthy6304 is expected to eq "a"6305 left_value: "a", right_value: true6306 is expected to be truthy6307 is expected to eq true6308 left_value: "a", right_value: 16309 is expected to be truthy6310 is expected to eq 16311 when left or right is falsey6312 left_value: true, right_value: false6313 is expected to be falsey6314 left_value: true, right_value: nil6315 is expected to be falsey6316 left_value: false, right_value: true6317 is expected to be falsey6318 left_value: false, right_value: nil6319 is expected to be falsey6320 left_value: nil, right_value: true6321 is expected to be falsey6322 left_value: nil, right_value: false6323 is expected to be falsey6324 when left and right are falsey6325 left_value: false, right_value: nil6326 is expected to be falsey6327 is expected to eq false6328 left_value: nil, right_value: false6329 is expected to be falsey6330 is expected to eq nil6331RuboCop::Cop::InjectEnterpriseEditionModule6332 # order random6333 disallows the use of include to inject an EE module6334 disallows the use of include_mod_with without a String6335 disallows the use of prepend to inject an extension module6336 disallows the use of prepend to inject a QA::EE module6337 does not flag the use of `prepend_mod_with` on the last line6338 disallows the use of extend to inject an EE module6339 does not flag the use of `extend_mod_with` on the last line6340 flags the use of `include_mod_with` in the middle of a file6341 does not flag the double use of `X_mod_with` on the last line6342 does not flag the use of `include_mod_with` on the last line6343 disallows the use of extend_mod_with without a String6344 flags the use of `prepend_mod_with` in the middle of a file6345 does not flag the use of `prepend_mod_with` as long as all injections are at the end of the file6346 flags the use of `extend_mod_with` in the middle of a file6347 disallows the use of prepend_mod_with without a String6348 autocorrects offenses by just disabling the Cop6349Gitlab::Analytics::CycleAnalytics::Aggregated::BaseQueryBuilder6350 scopes the query for the given project6351 author_username param6352 returns stage events associated with the given author6353 returns empty result when unknown author is given6354 milestone_title param6355 returns stage events associated with the milestone6356 returns empty result when unknown milestone is given6357 label_name param6358 returns stage events associated with multiple labels6359 does not include records with partial label match6360 assignee_username param6361 returns stage events associated assignee6362 timestamp filtering6363 filters by the end event time range6364 when in_progress items are requested6365 filters by the start event time range6366Ci::CreatePipelineService6367 when the variable is set6368 uses the evaluated variable6369 when the tag is composed by two variables6370 uses the evaluated variables6371 when the variable is not set6372 uses the variable as a regular string6373 when the tag uses group variables6374 uses the evaluated variables6375 when the tag has the same variable name defined for both group and project6376 uses the project variable instead of group due to variable precedence6377 with parallel:matrix config6378 uses the evaluated variables6379Namespaces::UserNamespacePolicy6380 with no user6381 is expected to be banned6382 regular user6383 is expected to be disallowed :owner_access, :create_projects, :admin_namespace, :read_namespace, :read_namespace_via_membership, :read_statistics, :transfer_projects, :admin_package, :read_billing, :edit_billing, and :import_projects6384 owner6385 is expected to be allowed :owner_access, :create_projects, :admin_namespace, :read_namespace, :read_namespace_via_membership, :read_statistics, :transfer_projects, :admin_package, :read_billing, :edit_billing, and :import_projects6386 user who has exceeded project limit6387 is expected to be disallowed :create_projects6388 is expected to be disallowed :transfer_projects6389 is expected to be disallowed :import_projects6390 bot user6391 is expected to be disallowed :create_projects6392 is expected to be disallowed :transfer_projects6393 is expected to be disallowed :import_projects6394 admin6395 when admin mode is enabled6396 is expected to be allowed :owner_access, :create_projects, :admin_namespace, :read_namespace, :read_namespace_via_membership, :read_statistics, :transfer_projects, :admin_package, :read_billing, :edit_billing, and :import_projects6397 when admin mode is disabled6398 is expected to be disallowed :owner_access, :create_projects, :admin_namespace, :read_namespace, :read_namespace_via_membership, :read_statistics, :transfer_projects, :admin_package, :read_billing, :edit_billing, and :import_projects6399 create_jira_connect_subscription6400 admin6401 when admin mode enabled6402 is expected to be allowed :create_jira_connect_subscription6403 when admin mode disabled6404 is expected to be disallowed :create_jira_connect_subscription6405 owner6406 is expected to be allowed :create_jira_connect_subscription6407 other user6408 is expected to be disallowed :create_jira_connect_subscription6409 create projects6410 when user can create projects6411 is expected to be allowed :create_projects6412 when user cannot create projects6413 is expected to be disallowed :create_projects6414 import projects6415 when user can import projects6416 is expected to be allowed :import_projects6417 when user cannot create projects6418 is expected to be disallowed :import_projects6419Integrations::ChatMessage::DeploymentMessage6420 behaves like Integrations::ChatMessage6421 when input contains link markup6422 strips all link markup characters6423 #pretext6424 returns a message with the data returned by the deployment data builder6425 returns a message for a successful deployment6426 returns a message for a failed deployment6427 returns a message for a canceled deployment6428 returns a message for a deployment to another environment6429 returns a message for a deployment with any other status6430 returns a message for a running deployment6431 #attachments6432 returns attachments for a failed deployment6433 returns attachments for a canceled deployment6434 uses a neutral color for a deployment with any other status6435 without markdown6436 returns attachments with the data returned by the deployment data builder6437 with markdown6438 returns attachments with the data returned by the deployment data builder6439 #attachment_color6440 status: "success", expected_color: "good"6441 returns the correct color6442 status: "canceled", expected_color: "warning"6443 returns the correct color6444 status: "failed", expected_color: "danger"6445 returns the correct color6446 status: "blub", expected_color: "#334455"6447 returns the correct color6448Types::Ci::JobTraceType6449 # order random6450 has the correct fields6451 htmlSummary6452 when trace contains few lines6453 when last_lines is set to 106454 shows the correct trace contents6455 when trace contains many lines6456 when last_lines is not set6457 shows the last 10 lines of trace contents6458 when last_lines is set to a negative number6459 shows the last line of trace contents6460 when last_lines is set to 106461 shows the correct trace contents6462 when last_lines is set to 1506463 shows the last 100 lines of trace contents6464 when trace contains long lines6465 when last_lines is lower than 16KB6466 shows the whole lines6467 when last_lines is higher than 16KB6468 shows only the latest byte6469 when trace is cut in middle of a line6470 shows only the latest byte6471 when trace is cut at end of a line6472 shows only the latest byte6473 when trace contains multi-bytes UTF-86474 when cut in the middle of a codepoint6475 shows a single "invalid utf-8" symbol6476BackgroundMigration::CiDatabaseWorker6477 behaves like it runs background migration jobs6478 defining the job attributes6479 defines the data_consistency as always (PENDING: Skipping because ci is shared or doesn't not exist)6480 defines the retry count in sidekiq_options (PENDING: Skipping because ci is shared or doesn't not exist)6481 defines the feature_category as database (PENDING: Skipping because ci is shared or doesn't not exist)6482 defines the urgency as throttled (PENDING: Skipping because ci is shared or doesn't not exist)6483 defines the loggable_arguments (PENDING: Skipping because ci is shared or doesn't not exist)6484 .tracking_database6485 does not raise an error (PENDING: Skipping because ci is shared or doesn't not exist)6486 overrides the method to return the tracking database (PENDING: Skipping because ci is shared or doesn't not exist)6487 .minimum_interval6488 returns 2 minutes (PENDING: Skipping because ci is shared or doesn't not exist)6489 #perform6490 when execute_background_migrations feature flag is disabled6491 does not perform the job, reschedules it in the future, and logs a message (PENDING: Skipping because ci is shared or doesn't not exist)6492 when disallow_database_ddl_feature_flags feature flag is disabled6493 does not perform the job, reschedules it in the future, and logs a message (PENDING: Skipping because ci is shared or doesn't not exist)6494 when execute_background_migrations feature flag is enabled6495 performs jobs using the coordinator for the worker (PENDING: Skipping because ci is shared or doesn't not exist)6496 when lease can be obtained6497 sets up the shared connection before checking replication (PENDING: Skipping because ci is shared or doesn't not exist)6498 performs a background migration (PENDING: Skipping because ci is shared or doesn't not exist)6499 can run scheduled job and retried job concurrently (PENDING: Skipping because ci is shared or doesn't not exist)6500 sets the class that will be executed as the caller_id (PENDING: Skipping because ci is shared or doesn't not exist)6501 when lease_attempts is 16502 performs a background migration (PENDING: Skipping because ci is shared or doesn't not exist)6503 when lease not obtained (migration of same class was performed recently)6504 reschedules the migration and decrements the lease_attempts (PENDING: Skipping because ci is shared or doesn't not exist)6505 when lease_attempts is 16506 reschedules the migration and decrements the lease_attempts (PENDING: Skipping because ci is shared or doesn't not exist)6507 when lease_attempts is 06508 gives up performing the migration (PENDING: Skipping because ci is shared or doesn't not exist)6509 when database is not healthy6510 reschedules a migration if the database is not healthy (PENDING: Skipping because ci is shared or doesn't not exist)6511 increments the unhealthy counter (PENDING: Skipping because ci is shared or doesn't not exist)6512 when lease_attempts is 06513 gives up performing the migration (PENDING: Skipping because ci is shared or doesn't not exist)6514BulkImports::RepositoryBundleExportService6515 #execute6516 when repository exists6517 bundles repository to disk6518 when repository does not exist6519 does not bundle repository to disk6520 when repository is empty6521 does not bundle repository to disk6522 when repository exists6523 bundles repository to disk6524 when repository does not exist6525 does not bundle repository to disk6526 when repository is empty6527 does not bundle repository to disk6528Resolvers::GroupMembersResolver6529 is expected to have nullable GraphQL type GroupMemberConnection6530 behaves like querying members with a group6531 #resolve6532 finds all resource members6533 with sort options6534 searches users by user name6535 with search6536 when the search term matches a user6537 searches users by user name6538 when the search term does not match any user6539 is empty6540 when user can not see resource members6541 generates an error6542Clusters::Agents::ActivityEventPolicy6543 rules6544 reporter6545 is expected to be disallowed :admin_cluster6546 is expected to be disallowed :read_cluster6547 developer6548 is expected to be disallowed :admin_cluster6549 is expected to be allowed :read_cluster6550 maintainer6551 is expected to be allowed :admin_cluster6552 is expected to be allowed :read_cluster6553Resolvers::BaseResolver6554 .singular_type6555 for a connection of scalars6556 is expected to eq GraphQL::Types::Int6557 for a connection of objects6558 is expected to eq #<Class:0x00007b4b327e89b8>6559 for a list type6560 is expected to eq GraphQL::Types::String6561 for a scalar type6562 is expected to eq GraphQL::Types::Boolean6563 .single6564 returns a subclass from the resolver6565 has the correct (singular) type6566 returns the same subclass every time6567 returns a resolver that gives the first result from the original resolver6568 .when_single6569 does not apply the block to the resolver6570 applies the block to the single version of the resolver6571 multiple when_single blocks6572 applies both blocks to the single version of the resolver6573 inheritance6574 applies both blocks to the single version of the resolver6575 when the resolver returns early6576 runs correctly in our test framework6577 single selects the first early return value6578 last selects the last early return value6579 .last6580 returns a subclass from the resolver6581 returns the same subclass every time6582 returns a resolver that gives the last result from the original resolver6583 when field is a connection6584 increases complexity based on arguments6585 does not increase complexity when filtering by iids6586 #object6587 returns object6588 when object is a presenter6589 returns presented object6590 #offset_pagination6591 is sugar for OffsetPaginatedRelation.new6592Gitlab::Ci::Status::Stage::PlayManual6593 #action_icon6594 is expected to eq "play"6595 #action_button_title6596 is expected to eq "Play all manual"6597 #action_title6598 is expected to eq "Play all manual"6599 #action_path6600 is expected to eq "/namespace820/project-830/-/pipelines/269/stages/test/play_manual"6601 #action_method6602 is expected to eq :post6603 .matches?6604 when stage is skipped6605 is expected to be truthy6606 when stage is manual6607 is expected to be truthy6608 when stage is scheduled6609 is expected to be truthy6610 when stage is success6611 and does not have manual builds6612 is expected to be falsy6613Branches::ValidateNewService6614 #execute6615 validation6616 returns error with an invalid branch name6617 returns success with a valid branch name6618 branch exist6619 returns error when branch exists6620 returns success when branch name is available6621Mutations::Security::CiConfiguration::ConfigureSast6622 is expected to require graphql authorizations :push_code6623 #resolve6624 generates an error if the resource is not accessible to the user6625 when user does not have enough permissions6626 generates an error6627 when user is a maintainer of a different project6628 generates an error6629 when the user does not have permission to create a new branch6630 returns an array of errors6631 when the user can create a merge request6632 when service successfully generates a path to create a new merge request6633 returns a success path6634 when service can not generate any path to create a new merge request6635 returns an array of errors6636Ci::CompareReportsBaseService6637 #latest?6638 when cache key is latest6639 is expected to be truthy6640 when cache key is outdated6641 is expected to be falsy6642 when cache key is empty6643 is expected to be falsy6644 #execute6645 when base_pipeline is running6646 is expected to eq {:key=>[277, 2023-10-20 08:56:15.737547729 +0000, 278, 2023-10-20 08:56:15.760283128 +0000], :status=>:parsing}6647Gitlab::Patch::Prependable6648 a class including a concern prepending a concern6649 returns values from prepended module ee6650 has the expected ancestors6651 prepends only once even if called twice6652 overriding methods6653 returns values from the class6654 a class prepending a concern prepending a concern6655 returns values from prepended module ee6656 has the expected ancestors6657 prepends only once6658 a class prepending a concern6659 returns values from prepended module ee6660 has the expected ancestors6661 prepends only once6662 simple case6663 class methods6664 has a method6665 can execute a method6666 instance methods6667 has a method6668 chains a method execution6669 having two prepended blocks6670 raises an error6671 the extra hack for override verification6672 when ENV["STATIC_VERIFICATION"] is not defined6673 does not extend ClassMethods onto the defining module6674 when ENV["STATIC_VERIFICATION"] is defined6675 does extend ClassMethods onto the defining module6676Gitlab::Ci::Runner::Metrics6677 #increment_runner_authentication_success_counter6678 increments count for same type6679 does not increment count for different type6680 does not increment failure count6681 throws ArgumentError for invalid runner type6682 #increment_runner_authentication_failure_counter6683 increments count6684 does not increment success count6685Sidebars::UserProfile::Menus::FollowingMenu6686 # order random6687 behaves like Followers/followees counts6688 when there are items6689 renders the pill6690 returns the count6691 when there are no items6692 does not render the pill6693 behaves like User profile menu6694 does not contain any sub menu6695 renders the correct link6696 renders the correct title6697 renders the correct icon6698 renders the correct avatar6699 defines correct active route6700 renders if user is logged in6701 when viewed user is blocked6702 when user is not logged in6703 is not allowed to view the menu item6704 when current user has permission6705 is allowed to view the menu item6706 when current user does not have permission6707 is not allowed to view the menu item6708 when viewed user is banned6709EscapeUtils.escape_url is deprecated. Use CGI.escape instead, performance is similar6710EscapeUtils.escape_url is deprecated. Use CGI.escape instead, performance is similar6711 when user is not logged in6712 is not allowed to view the menu item6713 when current user has permission6714 is allowed to view the menu item6715 when current user does not have permission6716 is not allowed to view the menu item6717Gitlab::Utils::JsonSizeEstimator6718 # order random6719 is expected to match json bytesize of6720 is expected to match json bytesize of nil6721 is expected to match json bytesize of {}6722 is expected to match json bytesize of {"狸"=>"狸"}6723 is expected to match json bytesize of {100=>500}6724 is expected to match json bytesize of {:a=>{}}6725 is expected to match json bytesize of [[[]]]6726 is expected to match json bytesize of {:a=>{:b=>{:c=>[1, 2, 3], :e=>2023-10-20 08:28:29.361910361 +0000, :f=>nil}}}6727 is expected to match json bytesize of 1, "str", 3.14, and ["str", {:a=>-1}]6728 calls #to_s on unknown object6729Preloaders::UserMaxAccessLevelInProjectsPreloader6730 without preloader6731 runs some queries67331st Try error in ./spec/models/preloaders/user_max_access_level_in_projects_preloader_spec.rb:22:6734expected to make 8 queries but made 9 queries6736RSpec::Retry: 2nd try ./spec/models/preloaders/user_max_access_level_in_projects_preloader_spec.rb:226737 #execute6738 when user is present6739 avoids N+1 queries6740 when projects is an array of IDs6741 avoids N+1 queries6742 when projects is a relation including project_authorizations6743 avoids N+1 queries6744 when user is not present6745 does not avoid N+1 queries6746Namespaces::ProjectNamespace6747 relationships6748 is expected to have one project inverse_of => project_namespace6749 is expected to eq #<Project id:892 namespace840/project-850>>6750 validations6751 is expected not to validate that :owner cannot be empty/falsy6752 when deleting project namespace6753 also deletes associated project6754 .create_from_project!6755 when namespace does not exist6756 new project_namespace is not saved6757 for new record when namespace exists6758 syncs the project attributes to project namespace6759 when project has an unsaved project namespace6760 saves the same project namespace6761 #sync_attributes_from_project6762 syncs visibility_level if project is new6763 with existing project6764 syncs the relevant keys from the project6765Resolvers::Ci::RunnersResolver6766 #resolve6767 when user cannot see runners6768 returns Gitlab::Graphql::Errors::ResourceNotAvailable6769 when user can see runners6770 when admin mode setting is disabled6771 returns all the runners6772 when admin mode setting is enabled6773 when in admin mode6774 returns all the runners6775 when not in admin mode6776 returns Gitlab::Graphql::Errors::ResourceNotAvailable6777 with obj not set to nil6778 raises an error6779 Allowed query arguments6780 with active filter6781 calls RunnersFinder with expected arguments6782 with both active and paused filter6783 calls RunnersFinder with expected arguments6784 with paused filter6785 calls RunnersFinder with expected arguments6786 with neither paused or active filters6787 calls RunnersFinder with expected arguments6788 with an invalid version filter parameter6789 ignores the parameter and returns runners6790MarkdownContentRewriterService6791 #initialize6792 raises an error if source_parent is not a Project6793 raises an error if field does not have cached markdown6794 #execute6795 when content does not need a rewrite6796 returns original content and cached html6797 when content needs a rewrite6798 calls the rewriter classes successfully6799 when content has references6800 rewrites content6801 when content contains an upload6802 rewrites content6803 #safe_to_copy_markdown?6804 when content has references6805 is expected to eq false6806 when content has uploaded file references6807 is expected to eq false6808 when content does not have references or uploads6809 is expected to eq true6810Clusters::AgentTokens::TrackUsageService6811 #execute6812 when last_used_at was updated recently6813 updates cache but not database6814 when last_used_at was not updated recently6815 updates cache and database6816 with invalid token6817 still updates caches and database6818 agent is not connected6819 creates an activity event6820 agent is connected6821 does not create an activity event6822Grafana::TimeWindow6823 #formatted6824 is expected to eq {:end=>"2019-03-17T13:10:00Z", :start=>"2019-03-17T05:10:00Z"}6825 #in_milliseconds6826 is expected to eq {:from=>1552799400000, :to=>1552828200000}6827 when non-unix parameters are provided6828 is expected to eq {:from=>1552799400000, :to=>1552828200000}6829Grafana::RangeWithDefaults6830 #to_hash6831 is expected to eq {:from=>#<Grafana::Timestamp:0x00007b4b623f4b60 @time=2019-03-17 05:10:00 +0000>, :to=>#<Grafana::Timestamp:0x00007b4b623f4728 @time=2019-03-17 13:10:00 +0000>}6832 when only "to" is provided6833 has the expected properties6834 when only "from" is provided6835 has the expected properties6836 when no parameters are provided6837 has the expected properties6838Grafana::Timestamp6839 #formatted6840 is expected to eq "2019-03-17T05:10:00Z"6841 #to_ms6842 is expected to eq 15527994000006843 .from_ms_since_epoch6844 is expected to be a kind of Grafana::Timestamp6845 when the input is not a unix-ish timestamp6846 raises an error6847Gitlab::Kubernetes6848 #container_exec_url6849 is expected to eq "wss"6850 is expected to eq "example.com"6851 is expected to eq "/api/v1/namespaces/default/pods/pod1/exec"6852 is expected to eq "container=container1&stderr=true&stdin=true&stdout=true&tty=true&command=sh&command=-c&command=bash+%7C%7C+sh"6853 with a HTTP API URL6854 is expected to eq "ws"6855 with a path prefix in the API URL6856 is expected to eq "/prefix/api/v1/namespaces/default/pods/pod1/exec"6857 with arguments that need urlencoding6858 is expected to eq "/api/v1/namespaces/default%20namespace/pods/pod%201/exec"6859 is expected to match /\Acontainer=container\+1&/6860 #filter_by_label6861 returns matching labels6862 #filter_by_annotation6863 returns matching labels6864 #filter_by_project_environment6865 returns matching env label6866 #filter_by_legacy_label6867 returns matching labels6868 #to_kubeconfig6869 is expected to eq {"apiVersion"=>"v1", "clusters"=>[{"cluster"=>{"certificate-authority-data"=>"UEVN", "server"=>"https..."gitlab-deploy", "kind"=>"Config", "users"=>[{"name"=>"gitlab-deploy", "user"=>{"token"=>"TOKEN"}}]}6870 when CA PEM is not provided6871 is expected to eq {"apiVersion"=>"v1", "clusters"=>[{"cluster"=>{"server"=>"https://kube.domain.com"}, "name"=>"gitlab-..."gitlab-deploy", "kind"=>"Config", "users"=>[{"name"=>"gitlab-deploy", "user"=>{"token"=>"TOKEN"}}]}6872 when token is not provided6873 is expected to be nil6874 #add_terminal_auth6875 adds authentication parameters to a hash6876Mutations::MergeRequests::SetSubscription6877 is expected to require graphql authorizations :update_subscription6878 when user does not have access to the project6879 behaves like a subscribeable not accessible graphql resource6880 raises an error if the resource is not accessible to the user6881 when user is developer member of the project6882 behaves like a subscribeable graphql resource6883 subscribes to the resource6884 when passing subscribe as false6885 unsubscribes from the discussion6886 when the project is public6887 behaves like a subscribeable graphql resource6888 subscribes to the resource6889 when passing subscribe as false6890 unsubscribes from the discussion6891Types::UntrustedRegexp6892 is expected to eq "UntrustedRegexp"6893 is expected to eq "A regexp containing patterns sourced from user input"6894 .coerce_input6895 input: ".*", expected_result: ".*"6896 with input .*6897 is expected to eq ".*"6898 input: "(.*)", expected_result: "(.*)"6899 with input (.*)6900 is expected to eq "(.*)"6901 input: "[test*]+", expected_result: "[test*]+"6902 with input [test*]+6903 is expected to eq "[test*]+"6904 input: "*v1", expected_result: :raise_error6905 with input *v16906 raises a coercion error6907 input: "[test*", expected_result: :raise_error6908 with input [test*6909 raises a coercion error6910 input: "test*+", expected_result: :raise_error6911 with input test*+6912 raises a coercion error6913 .coerce_result6914 input: "1", expected_result: "1"6915 with input 16916 is expected to eq "1"6917 input: 1, expected_result: "1"6918 with input 16919 is expected to eq "1"6920 input: true, expected_result: "true"6921 with input true6922 is expected to eq "true"6923Users::LastPushEventService6924 #cache_last_push_event6925 caches the event for the event's project and current user6926 caches the event for the origin project when pushing to a fork6927 #last_event_for_user6928 returns the last push event for the current user6929 returns nil when no push event could be found6930 #last_event_for_project6931 returns the last push event for the given project6932 returns nil when no push event could be found6933 #find_cached_event6934 with a non-existing cache key6935 returns nil6936 with an existing cache key6937 returns a PushEvent when no merge requests exist for the event6938 removes the cache key when no event could be found and returns nil6939Gitlab::Database::LoadBalancing::PrimaryHost6940 #connection6941 returns a connection from the pool6942 #release_connection6943 does nothing6944 #enable_query_cache!6945 does nothing6946 #disable_query_cache!6947 does nothing6948 #query_cache_enabled6949 delegates to the primary connection pool6950 #disconnect!6951 does nothing6952 #offline!6953 logs the event but does nothing else6954 #online?6955 returns true6956 #primary_write_location6957 raises NotImplementedError6958 #caught_up?6959 returns true6960 #database_replica_location6961 raises NotImplementedError6962Gitlab::SidekiqMiddleware::AdminMode::Client6963 yields block6964 user is a regular user6965 no admin mode field in payload6966 user is an administrator6967 admin mode disabled6968 no admin mode field in payload6969 admin mode enabled6970 when sidekiq required context not set6971 no admin mode field in payload6972 when user stored in current request6973 has admin mode field in payload6974 when bypassing session6975 has admin mode field in payload6976 admin mode setting disabled6977 yields block6978 no admin mode field in payload6979Create base work item types in production6980 behaves like work item base types importer6981OK6982 creates all base work item types if they don't exist6983OK6984 creates all default widget definitions6985OK6986 upserts base work item types if they already exist6987OK6988 upserts default widget definitions if they already exist and type changes6989OK6990 does not change default widget definitions if they already exist with changed disabled status6991OK6992 executes single INSERT query per types and widget definitions6993 when some base types exist6994OK6995 inserts all types and does nothing if some already existed6996 when some widget definitions exist6997OK6998 inserts all widget definitions and does nothing if some already existed6999JsonSchemaValidator7000 #validates_each7001 when filename is set7002 when data is valid7003 returns no errors7004 when data is invalid7005 returns json schema is invalid7006 when filename is not set7007 raises an ArgumentError7008 when filename is invalid7009 raises a FilenameError7010 hash_conversion option7011 when hash_conversion is enabled7012 returns no errors7013Packages::Rubygems::ExtractionWorker7014 #perform7015 without errors7016 processes the gem7017 with controlled errors7018 handling metadata with invalid size7019 behaves like handling error7020 mark the package as errored7021 handling a file error7022 behaves like handling error7023 mark the package as errored7024 with uncontrolled errors7025 handling Zip::Error7026 behaves like handling error7027 mark the package as errored7028 handling StandardError7029 behaves like handling error7030 mark the package as errored7031 returns when there is no package file7032 returns without action7033ProtectedTags::UpdateService7034 #execute7035 updates a protected tag7036 when updating protected tag with a name that contains HTML tags7037 updates a protected tag7038 without admin_project permissions7039 raises error7040Gitlab::JiraImport::AdvanceStageWorker7041 # order random7042 behaves like Gitlab::Import::AdvanceStage7043 #perform7044 when the project no longer exists7045 does not perform any work7046 when there are remaining jobs7047 reschedules itself7048 when the project import is not running7049 does not perform any work7050 clears the JobWaiter cache7051 when there are no remaining jobs7052 schedules the next stage7053 raises KeyError when the stage name is invalid7054 on worker timeouts7055 refreshes timeout and updates counter if jobs have been processed7056 converts string timeout argument to time7057 with an optimistic strategy7058 advances to next stage7059 with a pessimistic strategy7060 logs error and fails import7061 #wait_for_jobs7062 waits for jobs to complete and returns a new pair of keys to wait for7063Preloaders::UsersMaxAccessLevelByProjectPreloader7064 # order random7065 #execute7066 avoids N+1 queries7067 preloads the max access level used by project policies7068Database::CiNamespaceMirrorsConsistencyCheckWorker7069 #perform7070 executes the consistency check on namespaces7071 logs should contain the detailed mismatches7072 reports the differences to the logs7073 calls the consistency_fix_service to fix the inconsistencies7074Gitlab::WorkItems::WorkItemHierarchy7075 # order random7076 #base_and_ancestors7077 includes the base and its ancestors7078 can find ancestors upto a certain level7079 when same_type option is used7080 includes the base and its ancestors7081 hierarchy_order option7082 for :asc7083 orders by child to ancestor7084 for :desc7085 orders by ancestor to child7086 #base_and_descendants7087 includes the base and its descendants7088 when same_type option is used7089 includes the base and its ancestors7090 when with_depth is true7091 includes depth in the results7092Gitlab::Ci::Config::Interpolation::Block7093 # order random7094 properly evaluates the access pattern7095 knows its content7096 when functions are specified in the block7097 returns the modified value7098 when there is an access error7099 returns the access error7100 when there is a function error7101 returns the function error7102 when multiple functions are specified7103 executes each function in the specified order7104 when the data has inconsistent spacing7105 executes each function in the specified order7106 when a stack of functions errors in the middle7107 does not modify the value7108 when too many functions are specified7109 returns error7110 .match7111 matches each block in a string7112 matches an empty block7113 when functions are specified in the block7114 matches each block in a string7115Mail STARTTLS patch7116 # order random7117 does not override default constants values7118 ssl: false, tls: nil, enable_starttls: :always, enable_starttls_auto: nil, smtp_tls: false, smtp_starttls_mode: :always7119 sets TLS and STARTTLS settings properly7120 ssl: false, tls: false, enable_starttls: false, enable_starttls_auto: nil, smtp_tls: false, smtp_starttls_mode: false7121 sets TLS and STARTTLS settings properly7122 ssl: false, tls: nil, enable_starttls: :auto, enable_starttls_auto: nil, smtp_tls: false, smtp_starttls_mode: :auto7123 sets TLS and STARTTLS settings properly7124 ssl: false, tls: false, enable_starttls: true, enable_starttls_auto: false, smtp_tls: false, smtp_starttls_mode: :always7125 sets TLS and STARTTLS settings properly7126 ssl: false, tls: nil, enable_starttls: false, enable_starttls_auto: false, smtp_tls: false, smtp_starttls_mode: false7127 sets TLS and STARTTLS settings properly7128 when enable_starttls and tls are enabled7129 raises an argument exception7130 ssl: nil, tls: false, enable_starttls: nil, enable_starttls_auto: nil, smtp_tls: false, smtp_starttls_mode: :auto7131 sets TLS and STARTTLS settings properly7132 ssl: true, tls: nil, enable_starttls: nil, enable_starttls_auto: nil, smtp_tls: true, smtp_starttls_mode: false7133 sets TLS and STARTTLS settings properly7134 ssl: nil, tls: false, enable_starttls: nil, enable_starttls_auto: true, smtp_tls: false, smtp_starttls_mode: :auto7135 sets TLS and STARTTLS settings properly7136 enable_starttls_auto setting7137 uses default for enable_starttls_auto7138 when set to false7139 overrides default and sets value7140Ci::ArtifactBlob7141 #id7142 returns a hash of the path7143 #name7144 returns the entry name7145 #path7146 returns the entry path7147 #size7148 returns the entry size7149 #mode7150 returns the entry mode7151 #external_storage7152 returns :build_artifact7153 #external_url7154 with not allowed extension7155 is expected to be nil7156 with allowed extension7157 is expected to eq "http://namespace898.example.com/-/project1/-/jobs/1004/artifacts/other_artifacts_0.1.2/doc_sample.txt"7158 when port is configured7159 is expected to eq "http://namespace898.example.com:1234/-/project1/-/jobs/1004/artifacts/other_artifacts_0.1.2/doc_sample.txt"7160 #external_link?7161 with not allowed extensions7162 returns false7163 with allowed extensions7164 returns true7165Resolvers::BlameResolver7166 # order random7167 #resolve7168 when unauthorized7169 generates an error7170 when authorized7171 when feature is disabled7172 returns nothing7173 when feature is enabled7174 returns blame object7175 when from_line is below 17176 behaves like argument error7177 raises an ArgumentError7178 when to_line is below 17179 behaves like argument error7180 raises an ArgumentError7181 when to_line less than from_line7182 returns blame object7183Gitlab::RouteMap7184 #initialize7185 when the data is not YAML7186 raises an error7187 when the data is not a YAML array7188 raises an error7189 when an entry is not a hash7190 raises an error7191 when an entry does not have a source key7192 raises an error7193 when an entry does not have a public key7194 raises an error7195 when an entry source is not a valid regex7196 raises an error7197 when all is good7198 returns a route map7199 #public_path_for_source_path7200 returns the public path for a provided source path7201 malicious regexp7202 takes under a second7203MergeRequests::CleanupRefWorker7204 # order random7205 does remove all merge request refs7206 when max retry attempts reach7207 does not raise error7208 when only is :train7209 does remove only car merge request train ref7210Abuse::UserTrustScore7211 # order random7212 #telesign_score7213 when the user has a telesign risk score7214 returns the latest score7215 when the user does not have a telesign risk score7216 defaults to zero7217 #remove_old_scores7218 if max events is exceeded7219 removes the oldest events7220 #arkose_global_score7221 when the user has an arkose global risk score7222 returns the latest score7223 when the user does not have an arkose global risk score7224 defaults to zero7225 #arkose_custom_score7226 when the user has an arkose custom risk score7227 returns the latest score7228 when the user does not have an arkose custom risk score7229 defaults to zero7230 #spam_score7231 when the user is a spammer7232 returns the expected score7233 when the user is not a spammer7234 returns the expected score7235 #spammer?7236 when the user is a spammer7237 classifies the user as a spammer7238 when the user is not a spammer7239 does not classify the user as a spammer7240LooksAhead7241 preloads labels on issues7242 issues fewer queries than the naive approach7243 behaves like a working query on the test schema7244 has a good test setup7245Namespaces::UpdateRootStatisticsWorker7246 enqueues ScheduleAggregationWorker7247 behaves like subscribes to event7248 consumes the published event7249 behaves like an idempotent worker7250 is labeled as idempotent7251 performs multiple times sequentially without raising an exception7252StuckExportJobsWorker7253 with started export status7254 behaves like project export job detection7255 when the job has completed7256 when the export status was already updated7257 does not mark the export as failed7258 when the export status was not updated7259 marks the project as failed7260 when the job is not in queue and db record in queued state7261 marks the project as failed7262 when the job is running in Sidekiq7263 does not mark the project export as failed7264RuboCop::Cop::PreferClassMethodsOverModule7265 # order random7266 flags violation when using module ClassMethods and corrects7267 doesn't flag violation when module is not extending ActiveSupport::Concern7268 doesn't flag violation when ClassMethods is used inside a class7269 doesn't flag violation when not using either class_methods or ClassMethods7270 doesn't flag violation when using class_methods7271Banzai::Filter::ImageLazyLoadFilter7272 adds a class attribute7273 appends to the current class attribute7274 adds a async decoding attribute7275 transforms the image src to a data-src7276 works with external images7277Sidebars::UserProfile::Menus::SnippetsMenu7278 # order random7279 behaves like User profile menu7280 does not contain any sub menu7281 renders the correct link7282 renders the correct title7283 renders the correct icon7284 renders the correct avatar7285 defines correct active route7286 renders if user is logged in7287 when viewed user is blocked7288 when user is not logged in7289 is not allowed to view the menu item7290 when current user has permission7291 is allowed to view the menu item7292 when current user does not have permission7293 is not allowed to view the menu item7294 when viewed user is banned7295EscapeUtils.escape_url is deprecated. Use CGI.escape instead, performance is similar7296EscapeUtils.escape_url is deprecated. Use CGI.escape instead, performance is similar7297 when user is not logged in7298 is not allowed to view the menu item7299 when current user has permission7300 is allowed to view the menu item7301 when current user does not have permission7302 is not allowed to view the menu item7303API::Entities::Clusters::Agents::Authorizations::CiAccess7304 # order random7305 implicit authorization7306 includes shared fields7307 project authorization7308 includes shared fields7309 group authorization7310 includes shared fields7311Ci::UpdatePendingBuildService7312 #execute7313 validations7314 when model is invalid7315 raises an error7316 when params is invalid7317 raises an error7318 when model is a group with pending builds7319 updates all pending builds7320 when model is a project with pending builds7321 updates all pending builds7322RuboCop::Cop::Migration::MigrationRecord7323 # order random7324 outside of a migration7325 behaves like a disabled cop7326 does not register any offenses7327 outside of a migration7328 behaves like a disabled cop7329 does not register any offenses7330 in migration7331 in an old migration7332 behaves like a disabled cop7333 does not register any offenses7334 that is recent7335 adds an offense if inheriting from ApplicationRecord7336 adds an offense if inheriting from ::ApplicationRecord7337 in migration7338 in an old migration7339 behaves like a disabled cop7340 does not register any offenses7341 that is recent7342 adds an offense if inheriting from ActiveRecord::Base7343 adds an offense if inheriting from ::ActiveRecord::Base7344Gitlab::Utils::Uniquify7345 # order random7346 #string7347 returns the given string if it does not exist7348 returns the given string with a counter attached if the string exists7349 increments the counter for each candidate string that also exists7350 allows to pass an initial value for the counter7351 allows passing in a base function that defines the location of the counter7352Packages::Cleanup::DeleteOrphanedDependenciesWorker7353 # order random7354 is expected to be truthy7355 is expected to includes the CronjobQueue module7356 #perform7357 deletes only orphaned dependencies7358 executes 3 queries7359 when the worker is running for more than the max time7360 sets the last processed dependency id in redis cache7361 when the worker reaches the maximum number of batches7362 iterates over only 1 batch7363 sets the last processed dependency id in redis cache7364 when the worker finishes processing in less than the max time7365 clears the last processed last_processed_packages_dependency_id from redis cache7366 when logging extra metadata7367 logs the last proccessed id & the deleted rows count7368Tooling::Mappings::GraphqlBaseTypeMappings7369 # order random7370 #filename_to_class_name7371 returns the correct class name7372 #execute7373 when no GraphQL files were changed7374 does not change the output file7375 when some GraphQL files were changed7376 when none of those GraphQL types are included in other GraphQL types7377 does not change the output file7378 when the GraphQL types are included in other GraphQL types7379 writes the correct specs in the output7380 #filename_to_spec_filename7381 when the spec file exists7382 returns the correct spec filename7383 when the spec file does not exist7384 returns nil7385 #types_hierarchies7386 when no types are implementing other types7387 returns nothing7388 when types are implementing other types7389 when FOSS7390 returns only FOSS types7391 when EE7392 returns the correct children types7393 when JH7394 returns the correct children types7395 #filter_files7396 when no files were changed7397 returns an empty array7398 when GraphQL files were changed7399 returns the path to the GraphQL files7400 when files are deleted7401 returns an empty array7402API::Helpers::PaginationStrategies7403 #paginate_with_strategies7404 yields paginated relation7405 calls #finalize with first value returned from block7406 returns whatever the block returns7407 with paginator_params7408 correctly passes multiple parameters7409 #paginator7410 offset pagination7411 when keyset pagination is available and enforced for the relation7412 when a request scope is given7413 when the scope limit is exceeded7414 renders a 405 error7415 when keyset pagination is not enforced7416 returns no errors7417 when the scope limit is not exceeded7418 delegates to OffsetPagination7419 when a request scope is not given7420 when the default limits are exceeded7421 renders a 405 error7422 when the default limits are not exceeded7423 delegates to OffsetPagination7424 when keyset pagination is not available for the relation7425 delegates to OffsetPagination7426 for keyset pagination7427 when keyset pagination is available7428 delegates to Pager7429 when keyset pagination is not available7430 renders a 501 error7431Gitlab::UsageMetricGenerator7432 Creating metric instrumentation files7433 creates CE metric instrumentation files using the template7434 with EE flag true7435 creates EE metric instrumentation files using the template7436 for database type7437 creates the metric instrumentation file using the template7438 for numbers type7439 creates the metric instrumentation file using the template7440 with type option missing7441 raises an ArgumentError7442 with type option value not included in approved superclasses7443 raises an ArgumentError7444 without operation for database metric7445 raises an ArgumentError7446 with wrong operation for database metric7447 raises an ArgumentError7448 without operation for numbers metric7449 raises an ArgumentError7450 with wrong operation for numbers metric7451 raises an ArgumentError7452RedisCacheable7453 #cached_attribute7454 gets the cache attribute7455 #cache_attributes7456 sets the cache attributes7457 with existing cached attributes7458 sets the cache attributes7459 #merge_cache_attributes7460 with different attribute values7461 merges the cache attributes with existing values7462 with no new or changed attribute values7463 does not try to set Redis key7464 #cached_attr_reader7465 always returns the latest values7466 when there is no cached value7467 reads the attribute7468 when there is a cached value7469 reads the cached value7470 #cast_value_from_cache7471 with runner contacted_at7472 converts cache string to appropriate type7473Resolvers::ProjectJobsResolver7474 #resolve7475 with authorized user7476 with statuses argument7477 is expected to contain exactly #<Ci::Build status: "success", finished_at: "2023-10-20 08:53:29.000000000 +0000", created_at: "2023-...age", id: 1007, stage_id: 409, partition_id: 100, auto_canceled_by_partition_id: 100, tag_list: nil> and #<Ci::Build status: "success", finished_at: "2023-10-20 08:53:29.000000000 +0000", created_at: "2023-...age", id: 1008, stage_id: 409, partition_id: 100, auto_canceled_by_partition_id: 100, tag_list: nil>7478 with multiple statuses7479 is expected to contain exactly #<Ci::Build status: "success", finished_at: "2023-10-20 08:53:29.000000000 +0000", created_at: "2023-...age", id: 1007, stage_id: 409, partition_id: 100, auto_canceled_by_partition_id: 100, tag_list: nil>, #<Ci::Build status: "success", finished_at: "2023-10-20 08:53:29.000000000 +0000", created_at: "2023-...age", id: 1008, stage_id: 409, partition_id: 100, auto_canceled_by_partition_id: 100, tag_list: nil>, and #<Ci::Build status: "failed", finished_at: "2023-10-20 08:53:29.000000000 +0000", created_at: "2023-1...age", id: 1009, stage_id: 409, partition_id: 100, auto_canceled_by_partition_id: 100, tag_list: nil>7480 without statuses argument7481 is expected to contain exactly #<Ci::Build status: "success", finished_at: "2023-10-20 08:53:29.000000000 +0000", created_at: "2023-...age", id: 1007, stage_id: 409, partition_id: 100, auto_canceled_by_partition_id: 100, tag_list: nil>, #<Ci::Build status: "success", finished_at: "2023-10-20 08:53:29.000000000 +0000", created_at: "2023-...age", id: 1008, stage_id: 409, partition_id: 100, auto_canceled_by_partition_id: 100, tag_list: nil>, #<Ci::Build status: "failed", finished_at: "2023-10-20 08:53:29.000000000 +0000", created_at: "2023-1...age", id: 1009, stage_id: 409, partition_id: 100, auto_canceled_by_partition_id: 100, tag_list: nil>, and #<Ci::Build status: "pending", finished_at: nil, created_at: "2023-10-20 08:50:29.000000000 +0000", u...age", id: 1010, stage_id: 409, partition_id: 100, auto_canceled_by_partition_id: 100, tag_list: nil>7482 with unauthorized user7483 is expected to be nil7484Ci::CompareAccessibilityReportsService7485 #execute7486 when head pipeline has accessibility reports7487 returns status and data7488 when base and head pipelines have accessibility reports7489 returns status and data7490Ci::DestroySecureFileService7491 user is a maintainer7492 destroys the secure file7493 user is a developer7494 raises an exception7495Packages::Nuget::PackageMetadataPresenter7496 #json_url7497 is expected to end with "/api/v4/projects/944/packages/nuget/metadata/NugetPackage4/1.0.28.json"7498 #archive_url7499 is expected to end with "/api/v4/projects/944/packages/nuget/download/NugetPackage4/1.0.28/NugetPackage4.1.0.28.nupkg"7500 with package files pending destruction7501 is expected not to include "pending_destruction.nupkg"7502 #catalog_entry7503 returns an entry structure7504Gitlab::Tracking::ServicePingContext7505 # order random7506 #init7507 with valid configuration7508 data_source: :redis, event: "some_event"7509 does not raise errors7510 data_source: :redis_hll, event: "some_event"7511 does not raise errors7512 with invalid configuration7513 data_source: :redis, event: nil7514 does not raise errors7515 data_source: :redis_hll, event: nil7516 does not raise errors7517 data_source: :random, event: "some_event"7518 does not raise errors7519 #to_context7520 for redis_hll data source7521 contains event_name7522 for redis data source7523 contains event_name7524Users::UnblockService7525 # order random7526 #execute7527 when successful7528 is expected to eq true7529 change the user's state7530 saves a custom attribute7531 when failed7532 returns error result7533 does not change the user's state7534Gitlab::Graphql::Authorize::ObjectAuthorization7535 #ok?7536 when there are no abilities7537 is expected to be ok #<Double (anonymous)> and #<Double (anonymous)>7538 when no ability should be allowed7539 is expected not to be ok #<struct Foo x=0, y=0> and #<Double :User>7540 when go_fast should be allowed7541 is expected not to be ok #<struct Foo x=100, y=0> and #<Double :User>7542 when go_fast and go_slow should be allowed7543 is expected to be ok #<struct Foo x=100, y=100> and #<Double :User>7544 when the object delegates to another subject7545 is expected to be ok #<Double :Proxy> and #<Double :User>7546 is expected not to be ok #<Double :Proxy> and #<Double :User>7547FlushCounterIncrementsWorker7548 #perform7549 commits increments to database7550 when model class does not exist7551 does nothing7552 when record does not exist7553 does nothing7554devise/shared/_signup_omniauth_provider_list7555 # order random7556 when feature flag is true7557 is expected to have text "Register with:"7558 behaves like sso buttons have snowplow tracking7559 contains tracking attributes7560 when feature flag is false7561 is expected to have text "Create an account using:"7562 behaves like sso buttons have snowplow tracking7563 contains tracking attributes7564Resolvers::ErrorTracking::SentryErrorsResolver7565 is expected to have nullable GraphQL type SentryErrorConnection7566 #resolve7567 with insufficient user permission7568 returns nil7569 with sufficient permission7570 when after arg given7571 gives the cursor arg7572 when no issues fetched7573 returns nil7574 when issues returned7575 sets the issues7576 sets the pagination variables7577 returns an externally paginated array7578Groups::SettingsHelper7579 #group_settings_confirm_modal_data7580 prevent_delete_response: true, is_button_disabled: "true", form_value_id: nil7581 returns expected parameters7582 prevent_delete_response: true, is_button_disabled: "true", form_value_id: "fake_form_id"7583 returns expected parameters7584 prevent_delete_response: false, is_button_disabled: "false", form_value_id: nil7585 returns expected parameters7586 prevent_delete_response: false, is_button_disabled: "false", form_value_id: "fake_form_id"7587 returns expected parameters7588API::Helpers::MergeRequestsHelpers7589 #handle_merge_request_errors!7590 when merge request is valid7591 returns nil7592 when merge request is invalid7593 responds to a project_access error with unprocessable_entity7594 responds to a branch_conflict error with unprocessable_entity7595 responds to a validate_fork error with unprocessable_entity7596 responds to a base error with unprocessable_entity7597 responds to a validate_branches error with conflict7598 responds with bad request7599Gitlab::SidekiqMiddleware::WorkerContext::Client7600 #call7601 applies a context for jobs scheduled in batch7602 root_caller_id7603 uses caller_id of the current context7604 uses root_caller_id instead of caller_id of the current context7605 when the feature category is set in the context_proc7606 takes the feature category from the worker, not the caller7607 takes the feature category from the caller if the worker is not owned7608 does not set any explicit feature category for mailers7609 when the feature category is already set in the surrounding block7610 takes the feature category from the worker, not the caller7611 takes the feature category from the caller if the worker is not owned7612Tooling::Helm3Client7613 #releases7614Running command: `helm list --max 256 --offset 0 --output json`7615 raises an error if the Helm command fails7616Running command: `helm list --max 256 --offset 0 --output json`7617Ignoring this JSON parsing error: unexpected token at ''7618Response was:7619 calls helm list with default arguments7620Running command: `helm list --max 256 --offset 0 --output json --deployed`7621Ignoring this JSON parsing error: unexpected token at ''7622Response was:7623 calls helm list with extra arguments7624Running command: `helm list --max 256 --offset 0 --output json --deployed`7625Running command: `helm list --max 256 --offset 256 --output json --deployed`7626 returns a list of Release objects7627Running command: `helm list --max 256 --offset 0 --output json`7628Running command: `helm list --max 256 --offset 256 --output json`7629Running command: `helm list --max 256 --offset 512 --output json`7630 automatically paginates releases7631 #delete7632Running command: `helm uninstall --namespace my-release my-release`7633 raises an error if the Helm command fails7634Running command: `helm uninstall --namespace my-release my-release`7635 calls helm uninstall with default arguments7636 with multiple release names7637Running command: `helm uninstall --namespace my-release my-release`7638 raises an error if the Helm command fails7639Running command: `helm uninstall --namespace namespace my-release`7640Running command: `helm uninstall --namespace namespace my-release-2`7641 calls helm uninstall with multiple release names and a namespace7642Running command: `helm uninstall --namespace my-release my-release`7643Running command: `helm uninstall --namespace my-release-2 my-release-2`7644 calls helm uninstall with multiple release names and no namespace7645Gitlab::Changelog::Release7646 #to_markdown7647 when there are no entries7648 includes a notice about the lack of entries7649 when all data is present7650 includes all data7651 when no merge request is present7652 doesn't include a merge request link7653 when the author is not a contributor7654 doesn't include the author7655 when the author should always be credited7656 includes the author7657 when a category has no entries7658 isn't included in the output7659 when template parser raises an error7660 raises a Changelog error7661 #header_start_position7662 returns a regular expression for finding the start of a release section7663Gitlab::Database::Migrations::SwapColumnsDefault7664 # order random7665 #execute7666 when defaults are static values7667main: -- columns(:_test_swap_columns_and_defaults)7668main: -> 0.0036s7669main: -- columns(:_test_swap_columns_and_defaults)7670main: -> 0.0029s7671main: -- change_column_default(:_test_swap_columns_and_defaults, :integer_column, "100")7672main: -> 0.0044s7673main: -- change_column_default(:_test_swap_columns_and_defaults, :bigint_column, "8")7674main: -> 0.0039s7675 swaps the default correctly7676 when default is sequence7677main: -- columns(:_test_swap_columns_and_defaults)7678main: -> 0.0037s7679main: -- columns(:_test_swap_columns_and_defaults)7680main: -> 0.0028s7681main: -- quote_table_name("_test_swap_columns_and_defaults_seq")7682main: -> 0.0001s7683main: -- quote_table_name(:_test_swap_columns_and_defaults)7684main: -> 0.0001s7685main: -- quote_column_name(:bigint_column)7686main: -> 0.0001s7687main: -- execute("ALTER SEQUENCE \"_test_swap_columns_and_defaults_seq\" OWNED BY \"_test_swap_columns_and_defaults\".\"bigint_column\"")7688main: -> 0.0012s7689main: -- change_column_default(:_test_swap_columns_and_defaults, :integer_column, "100")7690main: -> 0.0043s7691main: -- change_column_default(:_test_swap_columns_and_defaults, :bigint_column, #<Proc:0x00007b4b52d91188 /builds/gitlab-org/gitlab/lib/gitlab/database/migrations/swap_columns_default.rb:46 (lambda)>)7692main: -> 0.0039s7693 swaps the default correctly7694 when defaults are the same7695main: -- columns(:_test_swap_columns_and_defaults)7696main: -> 0.0028s7697main: -- columns(:_test_swap_columns_and_defaults)7698main: -> 0.0033s7699 does nothing7700GroupCustomAttribute7701 assocations7702 is expected to belong to group required: false7703 validations7704 is expected to validate that :group cannot be empty/falsy7705 is expected to validate that :key cannot be empty/falsy7706 is expected to validate that :value cannot be empty/falsy7707 is expected to validate that :key is case-sensitively unique within the scope of :group_id7708RuboCop::Cop::QA::FabricateUsage7709 # order random7710 registers an offense for groups7711 does not register an offense when using fabricate_via_api! for an unenforced resource7712 registers an offense when using fabricate_via_api! for a valid resource7713Banzai::Filter::MarkdownFilter7714 markdown engine from context7715 finds the correct engine7716 defaults to the DEFAULT_ENGINE7717 raise error for unrecognized engines7718 code block7719 adds language to lang attribute when specified7720 does not add language to lang attribute when not specified7721 works with utf8 chars in language7722 works with additional language parameters7723 source line position7724 defaults to add data-sourcepos7725 disables data-sourcepos7726 footnotes in tables7727 processes footnotes in table cells7728Gitlab::Utils::DeepSize7729 # order random7730 is expected to eq 10485767731 is expected to eq 1007732 #initialize7733 when max_size is nil7734 sets max_size to DEFAULT_MAX_SIZE7735 when max_depth is nil7736 sets max_depth to DEFAULT_MAX_DEPTH7737 #valid?7738 when data within size and depth limits7739 is expected to be valid7740 when data not within size limit7741 is expected not to be valid7742 when data not within depth limit7743 is expected not to be valid7744GroupDeployKeysGroup7745 Associations7746 is expected to belong to group_deploy_key required: false7747 is expected to belong to group required: false7748 Validation7749 is expected to validate that :group_id cannot be empty/falsy7750 is expected to validate that :group_deploy_key cannot be empty/falsy7751Gitlab::Instrumentation::Redis7752 behaves like aggregation of redis storage data7753 get_request_count sum7754 sums data from all Redis storages7755 behaves like aggregation of redis storage data7756 get_cross_slot_request_count sum7757 sums data from all Redis storages7758 behaves like aggregation of redis storage data7759 get_allowed_cross_slot_request_count sum7760 sums data from all Redis storages7761 behaves like aggregation of redis storage data7762 query_time sum7763 sums data from all Redis storages7764 behaves like aggregation of redis storage data7765 read_bytes sum7766 sums data from all Redis storages7767 behaves like aggregation of redis storage data7768 write_bytes sum7769 sums data from all Redis storages7770 .payload7771 returns payload filtering out zeroed values7772 .detail_store7773 returns a flat array of detail stores with the storage name added to each item7774Gitlab::TimeTrackingFormatter7775 #parse7776 positive durations7777 is expected to eq 120007778 negative durations7779 is expected to eq -120007780 durations with months7781 uses our custom conversions7782 when the duration is nil7783 returns nil7784 when the duration is zero7785 when keep_zero is false7786 returns nil7787 when keep_zero is true7788 returns zero7789 #output7790 time_tracking_limit_to_hours setting is true7791 is expected to eq "49h 40m"7792 time_tracking_limit_to_hours setting is false7793 is expected to eq "1w 1d 1h 40m"7794 handles negative time input7795 is expected to eq "-1w 1d 1h 40m"7796Gitlab::Ci::Pipeline::Preloader7797 .preload!7798 preloads commit authors, number of warnings and ref commits7799 returns original collection7800 when preloading multiple commits7801 preloads all commits once7802Gitlab::Database::HealthStatus::Signals7803 # order random7804 with Normal signal it should not stop and log7805 behaves like health status signal7806 #log_info?7807 returns the log signal7808 #stop?7809 returns the stop signal7810 with NotAvailable signal it should not stop and log7811 behaves like health status signal7812 #log_info?7813 returns the log signal7814 #stop?7815 returns the stop signal7816 with Stop signal it should stop and log7817 behaves like health status signal7818 #log_info?7819 returns the log signal7820 #stop?7821 returns the stop signal7822 with Unknown signal it should only log and not stop7823 behaves like health status signal7824 #log_info?7825 returns the log signal7826 #stop?7827 returns the stop signal7828Mutations::SavedReplies::Create7829 #resolve7830 when feature is disabled7831 raises Gitlab::Graphql::Errors::ResourceNotAvailable7832 when feature is enabled for current user7833 when service fails to create a new saved reply7834 is expected to be nil7835 is expected to contain exactly "Content can't be blank" and "Name can't be blank"7836 when service successfully creates a new saved reply7837 is expected to eq "save_reply_name"7838 is expected to eq "Save Reply Content"7839 is expected to be empty7840Spam::AkismetMarkAsSpamService7841 #execute7842 when the spammable object is not submittable7843 does not submit as spam7844 spam is submitted successfully7845 submits as spam7846 updates the spammable object's user agent detail as being submitted as spam7847 when Akismet does not consider it spam7848 does not update the spammable object as spam7849Gitlab::Usage::Metrics::Aggregates::Sources::RedisHll7850 .calculate_events_union7851 calls Gitlab::UsageDataCounters::HLLRedisCounter.calculate_events_union7852 prevents from using fallback value as valid union result7853 .calculate_metrics_intersections7854 uses values returned by union to compute the intersection7855 raises error if union is < 07856PipelineNotificationWorker7857 #execute7858 calls NotificationService#pipeline_finished when the pipeline exists7859 does nothing when the pipeline does not exist7860 when the user is blocked7861 does nothing7862 behaves like worker with data consistency7863 .get_data_consistency_feature_flag_enabled?7864 returns true7865 .get_data_consistency7866 returns correct data consistency7867Gitlab::Memory::Watchdog::EventReporter7868 # order random7869 #threshold_violated7870 increments violations counter7871 does not increment handled violations counter7872 does not log violation7873 #started7874 logs start message once7875 #logger7876 when logger is not provided7877 uses default Gitlab::AppLogger7878 #strikes_exceeded7879 increments handled violations counter7880 logs violation7881 #stopped7882 logs stop message once7883RuboCop::Cop::ActiveRecordAssociationReload7884 # order random7885 when using ActiveRecord::Base7886 registers an offense on reload usage7887 does not register an offense on reset usage7888 when using ActiveRecord::Relation7889 registers an offense on reload usage7890 does not register an offense on reset usage7891 when using on self7892 registers an offense on reload usage7893 does not register an offense on reset usage7894Gitlab::HealthChecks::Middleware7895 #call7896 handling /readiness requests7897 handles the request7898 handling /liveness requests7899 handles the request7900 handling other requests7901 forwards them to the next middleware7902Gitlab::Session7903 uses the current thread as a data store7904 #with_session7905 sets session hash7906 restores current store after7907WorkItems::ParentLinks::BaseService7908 # order random7909 #execute7910 when user has sufficient permissions7911 raises NotImplementedError7912Integrations::IntegrationList7913 # order random7914 #to_array7915 returns array of Integration, columns, and values7916RuboCop::Cop::Migration::AddConcurrentIndex7917 # order random7918 when outside of migration7919 registers no offense7920 when in migration7921 registers an offense when add_concurrent_index is used inside a change method7922 registers no offense when add_concurrent_index is used inside an up method7923StubSaasFeatures7924 # order random7925 #stub_saas_features7926 subsequent run changes state7927 handles multiple features7928 when checking global state7929 feature_value: true7930 is expected to eq true7931 feature_value: false7932 is expected to eq false7933 when value is not boolean7934 raises an error7935WorkItems::Widgets::StartAndDueDate7936 .type7937 is expected to eq :start_and_due_date7938 .quick_action_params7939 is expected to include :due_date7940 #type7941 is expected to eq :start_and_due_date7942 #start_date7943 is expected to eq Fri, 20 Oct 20237944 #due_date7945 is expected to eq Fri, 27 Oct 20237946Resolvers::ErrorTracking::SentryErrorCollectionResolver7947 is expected to have nullable GraphQL type SentryErrorCollection7948 #resolve7949 returns an error collection object7950 provides the service url7951 provides the project7952BulkImports::Common::Pipelines::EntityFinisher7953 updates the entity status to finished7954 when entity is in a final finished or failed state7955 does nothing7956 does nothing7957 when all entity trackers failed7958 marks entity as failed7959Gitlab::Git::Patches::Patch7960 #size7961 is correct7962RuboCop::Cop::Gitlab::DelegatePredicateMethods7963 # order random7964 registers no offense with predicate method without allow_nil7965 registers offense for single predicate method with allow_nil:true7966 registers no offense with predicate method with allow_nil:false7967 registers no offense for non-predicate method with allow_nil:true7968 registers offense for multiple predicate methods with allow_nil:true7969ResolvesProject7970 can resolve projects by path7971 can resolve projects by id7972 complains when both are present7973 complains when neither is present7974Clusters::Agents::Authorizations::CiAccess::ImplicitAuthorization7975 # order random7976 is expected to eq {}7977 is expected to eq #<Project id:958 namespace962/project-951>>7978 is expected to eq 147979 is expected to eq #<Clusters::Agent id: 14, created_at: "2023-10-20 08:57:36.981103829 +0000", updated_at: "2023-10-20 ...829 +0000", project_id: 958, name: "agent-14", created_by_user_id: 1586, has_vulnerabilities: false>7980Packages::Npm::DeprecatePackageService7981 # order random7982 #execute7983 when passing deprecatation message7984 adds or updates the deprecated field7985 executes 5 queries7986 when passing deprecated as empty string7987 removes the deprecation warning7988 when passing async: true to execute7989 calls the worker and return7990RssHelper7991 #rss_url_options7992 when signed in7993 includes the current_user's feed_token7994 when signed out7995 does not have a feed_token7996 when feed_token disabled7997 does not have a feed_token7998Gitlab::IncidentManagement::PagerDuty::IncidentIssueDescription7999 # order random8000 #to_s8001 returns description8002 when created_at is missing8003 description contains current time in UTC8004 when there are several assignees8005 assignees is a list of links8006 when there is an impacted service8007 impacted service is a single link8008Mutations::Security::CiConfiguration::BaseSecurityAnalyzer8009 raises a NotImplementedError error if the resolve method is called on the base class8010Mutations::Boards::Update8011 is expected to require graphql authorizations :admin_issue_board8012 #resolve8013 when the user cannot admin the board8014 raises an error8015 when user can update board8016 updates board with correct values8017Gitlab::Redis::ClusterUtil8018 # order random8019 .cluster?8020 when MultiStore8021 pri_store: :cluster, sec_store: :cluster, expected_val: true8022 returns expected value8023 pri_store: :cluster, sec_store: :single, expected_val: true8024 returns expected value8025 pri_store: :single, sec_store: :cluster, expected_val: true8026 returns expected value8027 pri_store: :single, sec_store: :single, expected_val: false8028 returns expected value8029 when is not Redis::Cluster8030 returns false8031 when is Redis::Cluster8032 returns true8033ActionMailer hooks8034 smime signature interceptor8035 is disabled by default8036 interceptor testbed8037 email_enabled: false, email_smime_enabled: false, smime_interceptor_enabled: false8038 is enabled depending on settings8039 email_enabled: false, email_smime_enabled: true, smime_interceptor_enabled: false8040 is enabled depending on settings8041 email_enabled: true, email_smime_enabled: false, smime_interceptor_enabled: false8042 is enabled depending on settings8043 email_enabled: true, email_smime_enabled: true, smime_interceptor_enabled: true8044 is enabled depending on settings8045Gitlab::Audit::DeployKeyAuthor8046 #initialize8047 sets correct attributes8048 sets default name when it is not provided8049Gitlab::Tracking::Destinations::Snowplow8050 when snowplow is enabled8051 #event8052 sends event to tracker8053 increase total snowplow events counter8054 when snowplow is not enabled8055 #event8056 does not send event to tracker8057 callbacks8058 on success8059 increase gitlab_successful_snowplow_events_total counter8060 on failure8061 increase gitlab_failed_snowplow_events_total counter and logs failures8062API::Base8063 declare feature categories at handler level for all routes8064 sets feature category for a particular route8065 sets request urgency for a particular route8066 declare feature categories at route level8067 sets feature category for a particular route8068 sets request urgency for a particular route8069 declare feature categories at both handler level and route level8070 sets feature category for a particular route8071 sets target duration for a particular route8072Google::Apis::Core::HttpCommand8073 with a successful response8074 returns the response body if block not present8075 calls block if present8076 retries with max elapsed_time and retries8077RepositoryCheckQueue8078 disables retrying of failed jobs8079Gitlab::Database::PostgresAutovacuumActivity8080 is expected to be a kind of Gitlab::Database::SharedModel(abstract)8081 .for_tables8082 returns autovacuum activity for queries tables8083 executes the query8084 .wraparound_prevention8085 is expected to match (a hash including {"wraparound_prevention" => true})8086Gitlab::Ci::Config::Header::Spec8087 # order random8088 when spec contains unknown keywords8089 fails validations8090 returns the value8091 when spec contains a required value8092 parses the config correctly8093 when spec contains default values for inputs8094 passes validations8095 returns the value8096Gitlab::Ci::Config::Interpolation::Context8097 # order random8098 .fabricate8099 when given an unexpected object8100 raises an ArgumentError8101 #to_h8102 returns the context hash8103 #depth8104 returns a max depth of the hash8105 .new8106 returns variables as a Variables::Collection object8107 when interpolation context is too complex8108 raises an exception8109SystemCheck::SidekiqCheck8110 #multi_check8111 fails when no worker processes are running8112 fails when more than one cluster process is running8113 succeeds when one cluster process and one or more worker processes are running8114 when only a worker process is running8115 fails with the right message for systemd8116 fails with the right message for sysvinit8117API::Entities::ProjectJobTokenScope8118 # order random8119 #as_json8120 includes basic fields8121 includes basic fields8122RuboCop::Cop::AvoidBecomes8123 # order random8124 flags the use of becomes with a namespaced constant parameter8125 flags the use of becomes with a dynamic parameter8126 flags the use of becomes with a constant parameter8127Gitlab::Config::Entry::Unspecified8128 #valid?8129 delegates method to entry8130 #errors8131 delegates method to entry8132 #value8133 delegates method to entry8134 #specified?8135 is always false8136Gitlab::Memory::Watchdog::Handlers::NullHandler8137 # order random8138 #call8139 does nothing8140devise/confirmations/almost_there8141 # order random8142 register again prompt8143 is expected to have visible link "register again with a different email" with href "/users/sign_up"8144 confirmations text8145 when correct email8146 is expected to have text "Please check your email (こんにちは@test) to confirm your account"8147 when random text8148 is expected to have text "Please check your email to confirm your account"8149Gitlab::JsonLogger8150 behaves like a json logger8151 formats strings8152 formats hashes8153 #file_name8154 raises error when file_name_noext not implemented8155 returns log file name when file_name_noext is implemented8156Gitlab::GithubImport::SingleEndpointNotesImporting8157 #parent_collection8158 is expected to raise NotImplementedError8159 #parent_imported_cache_key8160 is expected to raise NotImplementedError8161 #page_counter_id8162 is expected to raise NotImplementedError8163BulkImports::Groups::Graphql::GetProjectsQuery8164 has a valid query8165 with invalid variables8166 raises an error8167 #data_path8168 returns data path8169 #page_info_path8170 returns pagination information path8171Analytics::CycleAnalytics::RuntimeLimiter8172 # order random8173 #was_over_time?8174 returns true if over_time? returned true at an earlier step8175 #over_time?8176 returns true if over time8177 #elapsed_time8178 reports monotonic elapsed time since instantiation8179Gitlab::Bullet8180 with bullet installed8181 #enabled?8182 with env enabled8183 is enabled8184 with env disabled8185 is not enabled8186 #configure_bullet?8187 with config enabled8188 is configurable8189 with config disabled8190 is not configurable8191Types::Ci::Config::JobRestrictionType8192 is expected to eq "CiConfigJobRestriction"8193 exposes the expected fields8194profiles/audit_log8195 when user has successful and failure events8196 only shows successful events8197Types::Projects::ServiceType8198 is expected to have graphql fields :type, :service_type, and :active8199 .resolve_type8200 resolves the corresponding type for objects8201Mattermost::Command8202 #create8203 for valid trigger word8204 returns a token8205 for error message8206 raises an error with message8207Gitlab::GithubImport::Importer::Attachments::BaseImporter8208 # order random8209 #each_object_to_import8210 with not implemented #collection interface8211 raises NotImplementedError8212Types::Ci::Catalog::ResourceSortEnum8213 # order random8214 is expected to eq "CiCatalogResourceSort"8215 exposes all the existing catalog resource sort orders8216Gitlab::Middleware::RackMultipartTempfileFactory8217 for a multipart request8218 immediately unlinks the temporary file8219 processes the request as normal8220 for a regular request8221 does nothing8222Presentable8223 #present8224 returns a presenter8225 takes optional attributes8226Packages::Downloadable8227 # order random8228 with a package8229 #touch_last_downloaded_at8230 updates the downloaded_at8231Tooling::Danger::Clickhouse8232 # order random8233 #changes8234 with click_house gem changes8235 returns only clickhouse changes8236 with clickhouse data changes8237 returns only clickhouse changes8238 with clickhouse app changes8239 returns only clickhouse changes8240Types::CustomerRelations::ContactSortEnum8241 is expected to eq "ContactSort"8242 exposes all the contact sort values8243 behaves like common sort values8244 exposes all the existing common sort values8245Gitlab::Kubernetes::Kubeconfig::Entry::Cluster8246 #to_h8247 is expected to eq {:cluster=>{:server=>"url"}, :name=>"name"}8248 with a certificate8249 is expected to eq {:cluster=>{:"certificate-authority-data"=>"Y2VydGlmaWNhdGU=", :server=>"url"}, :name=>"name"}8250Gitlab::Utils::Measuring8251 # order random8252 #with_measuring8253 measures and logs data8254 with base_log_data provided8255 logs includes base data8256DatabaseReflection8257 .reflect8258 returns a Reflection instance8259 memoizes the result8260ProtectedRefsHelper8261 # order random8262 #protected_access_level_dropdown_roles8263 returns dropdown options for each protected ref access level8264 #protected_access_levels_for_dropdowns8265 returns roles for {create,push,merge}_access_levels8266Types::BranchProtections::PushAccessLevelType8267 # order random8268 is expected to have graphql fields :access_level, :access_level_description, and :deploy_key8269 is expected to require graphql authorizations :read_protected_branch8270Gitlab::Graphql::Timeout8271 inherits from8272 sends the error to our GraphQL logger8273Sidebars::Groups::SuperSidebarMenus::DeployMenu8274 # order random8275 defines list of NilMenuItem placeholders8276 has title and sprite_icon8277Types::Organizations::GroupSortEnum8278 # order random8279 is expected to eq "OrganizationGroupSort"8280 exposes all the organization groups sort values8281SystemCheck::App::GitlabResqueConfigExistsCheck8282 # order random8283 #check?8284 when config/resque.yml exists8285 is expected to eq true8286 when config/resque.yml does not exist8287 is expected to eq false8288Types::Ci::GroupType8289 is expected to eq "CiGroup"8290 exposes the expected fields8291Gitlab::Kubernetes::Kubeconfig::Entry::Context8292 #to_h8293 is expected to eq {:context=>{:cluster=>"cluster", :user=>"user"}, :name=>"name"}8294 with a namespace8295 is expected to eq {:context=>{:cluster=>"cluster", :namespace=>"namespace", :user=>"user"}, :name=>"name"}8296API::Entities::Projects::RepositoryStorageMove8297 #as_json8298 includes basic fields8299CreateMergeRequestDiscussion8300 # order random8301 #execute8302 requests commit_merge_requests from the gitlab client8303FasterCacheKeys8304 #cache_key8305 returns a String8306Gitlab::ErrorTracking::Processor::ContextPayloadProcessor8307 .call8308 merges the context payload into event payload8309Types::Packages::Maven::MetadatumType8310 includes maven metadatum fields8311Types::Security::ReportTypeEnum8312 exposes all security report types8313Notes::RenderService8314 #execute8315 renders a Note8316MicrosoftTeams::Activity8317 #prepare8318 returns the correct JSON object8319processing of SAMLResponse in dependencies8320 can extract AuthnContextClassRef from SAMLResponse param8321AccessibilityErrorEntity8322 #as_json8323 when accessibility contains an error8324 contains correct accessibility error details8325auto_explain log contains 1791 entries for main, writing to /builds/gitlab-org/gitlab/auto_explain/rspec-unit-pg14-single-db-ci-connection-28-28.327.main.ndjson.gz8326took 25.7077630368327auto_explain log contains 1791 entries for ci, writing to /builds/gitlab-org/gitlab/auto_explain/rspec-unit-pg14-single-db-ci-connection-28-28.327.ci.ndjson.gz8328took 26.3199940118329Knapsack report was generated. Preview:8330{8331 "spec/models/ci/build_spec.rb": 106.9318930720001,8332 "spec/lib/gitlab/asciidoc_spec.rb": 249.68142605600042,8333 "spec/models/concerns/noteable_spec.rb": 162.36108973299997,8334 "spec/services/ci/create_pipeline_service_spec.rb": 90.38124590499956,8335 "spec/policies/ci/pipeline_schedule_policy_spec.rb": 65.53428972500024,8336 "spec/lib/gitlab/import_export/project/tree_saver_spec.rb": 71.67720252900017,8337 "spec/lib/gitlab/database/migration_helpers/automatic_lock_writes_on_tables_spec.rb": 61.157335664999664,8338 "spec/services/suggestions/apply_service_spec.rb": 57.53711454200038,8339 "spec/services/packages/maven/metadata/create_versions_xml_service_spec.rb": 56.367181229999915,8340 "spec/services/ci/runners/create_runner_service_spec.rb": 39.583201157000076,8341 "spec/finders/todos_finder_spec.rb": 36.16776312899947,8342 "spec/lib/gitlab/ci/trace_spec.rb": 14.274696852000488,8343 "spec/models/design_management/design_at_version_spec.rb": 33.32152303300063,8344 "spec/lib/gitlab/git/blob_spec.rb": 12.066581422999661,8345 "spec/finders/merge_request_target_project_finder_spec.rb": 35.2943115449998,8346 "spec/models/concerns/token_authenticatable_spec.rb": 22.484808792000877,8347 "spec/models/resource_label_event_spec.rb": 20.73641679100001,8348 "spec/policies/group_member_policy_spec.rb": 28.040179710999837,8349 "spec/lib/gitlab/relative_positioning/item_context_spec.rb": 15.891139391999786,8350 "spec/models/ci/build_dependencies_spec.rb": 18.636467577000076,8351 "spec/lib/backup/manager_spec.rb": 9.219715734000602,8352 "spec/services/milestones/transfer_service_spec.rb": 22.94048969800042,8353 "spec/services/work_items/parent_links/create_service_spec.rb": 19.020723034000184,8354 "spec/services/packages/nuget/search_service_spec.rb": 16.090218681000806,8355 "spec/lib/gitlab/prometheus_client_spec.rb": 7.07944088000022,8356 "spec/finders/packages/nuget/package_finder_spec.rb": 13.992819465000139,8357 "spec/lib/gitlab/ci/config/external/processor_spec.rb": 12.716068843000357,8358 "spec/lib/gitlab/ci/templates/npm_spec.rb": 15.27104623500054,8359 "spec/models/badge_spec.rb": 15.596931725000104,8360 "spec/services/design_management/save_designs_service_spec.rb": 12.878905898000085,8361 "spec/models/application_record_spec.rb": 11.09352828200008,8362 "spec/lib/gitlab/ci/runner/backoff_spec.rb": 5.696220435999749,8363 "spec/lib/gitlab/ci/badge/release/template_spec.rb": 13.357153063000624,8364 "spec/lib/gitlab/data_builder/emoji_spec.rb": 10.505949980999503,8365 "spec/models/appearance_spec.rb": 6.476370983000379,8366 "spec/services/projects/participants_service_spec.rb": 13.69569679399956,8367 "spec/models/active_session_spec.rb": 9.991419996000332,8368 "spec/lib/gitlab/redis/rate_limiting_spec.rb": 5.064925865999612,8369 "spec/lib/gitlab/utils/sanitize_node_link_spec.rb": 5.331447546999698,8370 "spec/helpers/tree_helper_spec.rb": 10.390917083000204,8371 "spec/lib/gitlab/import_export/after_export_strategies/base_after_export_strategy_spec.rb": 14.349256253000021,8372 "spec/workers/merge_requests/ensure_prepared_worker_spec.rb": 10.990654485999585,8373 "spec/services/users/update_service_spec.rb": 5.508678821999638,8374 "spec/lib/gitlab/user_access_snippet_spec.rb": 3.970666238999911,8375 "spec/tooling/quality/test_level_spec.rb": 1.5152811039997687,8376 "spec/services/discussions/resolve_service_spec.rb": 5.902125180000439,8377 "spec/finders/projects/members/effective_access_level_finder_spec.rb": 7.025965855999857,8378 "spec/graphql/mutations/issues/set_confidential_spec.rb": 8.316535666000163,8379 "spec/lib/gitlab/usage/metric_definition_spec.rb": 2.7722716260004745,8380 "spec/lib/gitlab/multi_collection_paginator_spec.rb": 8.134539032000248,8381 "spec/lib/banzai/pipeline/gfm_pipeline_spec.rb": 6.04601105600068,8382 "spec/lib/gitlab/alert_management/payload/generic_spec.rb": 1.740175568000268,8383 "spec/lib/gitlab/cache/helpers_spec.rb": 5.180794562999836,8384 "spec/services/merge_requests/export_csv_service_spec.rb": 7.076255004000814,8385 "spec/lib/gitlab/http_io_spec.rb": 1.4285745870001847,8386 "spec/lib/gitlab/discussions_diff/file_collection_spec.rb": 7.8935334399993735,8387 "spec/finders/packages/maven/package_finder_spec.rb": 5.694815685999856,8388 "spec/services/ci/stuck_builds/drop_pending_service_spec.rb": 2.832109883999692,8389 "spec/services/ci/play_bridge_service_spec.rb": 6.580012309999802,8390 "spec/lib/gitlab/ci/pipeline/chain/populate_spec.rb": 3.366092987000229,8391 "spec/lib/banzai/filter/syntax_highlight_filter_spec.rb": 1.4074958470000638,8392 "spec/models/projects/topic_spec.rb": 2.8348828629996206,8393 "spec/workers/ci/ref_delete_unlock_artifacts_worker_spec.rb": 4.985627017999832,8394 "spec/graphql/resolvers/users/participants_resolver_spec.rb": 5.811892212999737,8395 "spec/workers/deployments/hooks_worker_spec.rb": 4.944492899999204,8396 "spec/services/ci/generate_coverage_reports_service_spec.rb": 3.9083432209999955,8397 "spec/lib/gitlab/ci/status/build/failed_allowed_spec.rb": 3.7129534569994576,8398 "spec/lib/gitlab/ci/templates/Verify/load_performance_testing_gitlab_ci_yaml_spec.rb": 5.1740368619994115,8399 "spec/lib/error_tracking/sentry_client/projects_spec.rb": 1.2047967940006856,8400 "spec/components/pajamas/toggle_component_spec.rb": 1.148269725999853,8401 "spec/models/concerns/sortable_spec.rb": 2.4652060039998105,8402 "spec/models/oauth_access_token_spec.rb": 3.5961089410002387,8403 "spec/lib/gitlab/ci/config/entry/rules/rule/changes_spec.rb": 1.3021051400000943,8404 "spec/services/packages/debian/sign_distribution_service_spec.rb": 3.963477378999414,8405 "spec/lib/gitlab/import_export/repo_restorer_spec.rb": 3.8632799619999787,8406 "spec/lib/gitlab/analytics/cycle_analytics/base_query_builder_spec.rb": 3.2076480120003907,8407 "spec/lib/atlassian/jira_connect/serializers/deployment_entity_spec.rb": 4.05259312599992,8408 "spec/services/merge_requests/delete_non_latest_diffs_service_spec.rb": 5.232003280999379,8409 "spec/lib/banzai/filter/table_of_contents_filter_spec.rb": 1.288710200999958,8410 "spec/models/authentication_event_spec.rb": 1.9910323289996086,8411 "spec/lib/gitlab/asciidoc/include_processor_spec.rb": 1.422934816999259,8412 "spec/models/concerns/clusters/agents/authorizations/ci_access/config_scopes_spec.rb": 4.175017952999951,8413 "spec/finders/concerns/finder_with_group_hierarchy_spec.rb": 3.855137062000722,8414 "spec/tasks/gitlab/feature_categories_rake_spec.rb": 3.6191838299992014,8415 "spec/lib/gitlab/ci/pipeline/expression/lexeme/and_spec.rb": 1.3532214590004514,8416 "spec/rubocop/cop/inject_enterprise_edition_module_spec.rb": 1.1380195149995416,8417 "spec/lib/gitlab/analytics/cycle_analytics/aggregated/base_query_builder_spec.rb": 1.8467806640001072,8418 "spec/services/ci/create_pipeline_service/evaluate_runner_tags_spec.rb": 3.2461760509995656,8419 "spec/policies/namespaces/user_namespace_policy_spec.rb": 2.0625955280002017,8420 "spec/models/integrations/chat_message/deployment_message_spec.rb": 1.9675518309995823,8421 "spec/graphql/types/ci/job_trace_type_spec.rb": 1.409371276999991,8422 "spec/workers/background_migration/ci_database_worker_spec.rb": 0.8612777440002901,8423 "spec/services/bulk_imports/repository_bundle_export_service_spec.rb": 2.478309074000208,8424 "spec/graphql/resolvers/group_members_resolver_spec.rb": 2.1311868349994256,8425 "spec/policies/clusters/agents/activity_event_policy_spec.rb": 2.54373015299916,8426 "spec/graphql/resolvers/base_resolver_spec.rb": 1.0415016679999098,8427 "spec/lib/gitlab/ci/status/stage/play_manual_spec.rb": 2.485823994000384,8428 "spec/services/branches/validate_new_service_spec.rb": 2.4794074550000005,8429 "spec/graphql/mutations/security/ci_configuration/configure_sast_spec.rb": 2.4210125360004895,8430 "spec/services/ci/compare_reports_base_service_spec.rb": 2.830094473999452,8431 "spec/lib/gitlab/patch/prependable_spec.rb": 0.8583128740001484,8432 "spec/lib/gitlab/ci/runner/metrics_spec.rb": 2.3477456190003068,8433 "spec/lib/sidebars/user_profile/menus/following_menu_spec.rb": 0.9397749009995096,8434 "spec/lib/gitlab/utils/json_size_estimator_spec.rb": 0.4503463560004093,8435 "spec/models/preloaders/user_max_access_level_in_projects_preloader_spec.rb": 3.0980120559997886,8436 "spec/models/namespaces/project_namespace_spec.rb": 2.16855998399933,8437 "spec/graphql/resolvers/ci/runners_resolver_spec.rb": 1.1025114060003034,8438 "spec/services/markdown_content_rewriter_service_spec.rb": 2.316841349999777,8439 "spec/services/clusters/agent_tokens/track_usage_service_spec.rb": 1.298012799999924,8440 "spec/lib/grafana/time_window_spec.rb": 0.7228287880006974,8441 "spec/lib/gitlab/kubernetes_spec.rb": 0.627743771000496,8442 "spec/graphql/mutations/merge_requests/set_subscription_spec.rb": 2.5629563519996736,8443 "spec/graphql/types/untrusted_regexp_spec.rb": 1.5044963950003876,8444 "spec/services/users/last_push_event_service_spec.rb": 0.5847398320001957,8445 "spec/lib/gitlab/database/load_balancing/primary_host_spec.rb": 0.5327163640004073,8446 "spec/lib/gitlab/sidekiq_middleware/admin_mode/client_spec.rb": 0.6933089679996556,8447 "spec/db/production/create_base_work_item_types_spec.rb": 0.860266603999662,8448 "spec/validators/json_schema_validator_spec.rb": 1.2362879510001221,8449 "spec/workers/packages/rubygems/extraction_worker_spec.rb": 1.1970671330000187,8450 "spec/services/protected_tags/update_service_spec.rb": 1.6007058619998134,8451 "spec/workers/gitlab/jira_import/advance_stage_worker_spec.rb": 1.2798375799993664,8452 "spec/models/preloaders/users_max_access_level_by_project_preloader_spec.rb": 2.500691394000569,8453 "spec/workers/database/ci_namespace_mirrors_consistency_check_worker_spec.rb": 2.549209972999961,8454 "spec/lib/gitlab/work_items/work_item_hierarchy_spec.rb": 1.1780015139993338,8455 "spec/lib/gitlab/ci/config/interpolation/block_spec.rb": 0.5724782420002157,8456 "spec/initializers/mail_starttls_patch_spec.rb": 1.8067243160003272,8457 "spec/models/ci/artifact_blob_spec.rb": 1.2835065099998246,8458 "spec/graphql/resolvers/blame_resolver_spec.rb": 0.9699949510004444,8459 "spec/lib/gitlab/route_map_spec.rb": 0.47233525499996176,8460 "spec/workers/ci/merge_requests/cleanup_ref_worker_spec.rb": 2.453526535000492,8461 "spec/models/abuse/user_trust_score_spec.rb": 0.8497554140003558,8462 "spec/graphql/resolvers/concerns/looks_ahead_spec.rb": 1.8979755020000084,8463 "spec/workers/namespaces/update_root_statistics_worker_spec.rb": 0.256732761999956,8464 "spec/workers/stuck_export_jobs_worker_spec.rb": 1.7118952979999449,8465 "spec/rubocop/cop/prefer_class_methods_over_module_spec.rb": 0.2825403319993711,8466 "spec/lib/banzai/filter/image_lazy_load_filter_spec.rb": 0.27477969100073096,8467 "spec/lib/sidebars/user_profile/menus/snippets_menu_spec.rb": 0.7931065960001433,8468 "spec/lib/api/entities/clusters/agents/authorizations/ci_access_spec.rb": 2.0613645869998436,8469 "spec/services/ci/update_pending_build_service_spec.rb": 1.2221161330007817,8470 "spec/rubocop/cop/migration/migration_record_spec.rb": 0.45150644700061093,8471 "spec/lib/gitlab/utils/uniquify_spec.rb": 0.28468855200026155,8472 "spec/workers/packages/cleanup/delete_orphaned_dependencies_worker_spec.rb": 0.8408109050005805,8473 "spec/tooling/lib/tooling/mappings/graphql_base_type_mappings_spec.rb": 0.580994142000236,8474 "spec/lib/api/helpers/pagination_strategies_spec.rb": 0.6364692400002241,8475 "spec/lib/generators/gitlab/usage_metric_generator_spec.rb": 0.5070271550002872,8476 "spec/models/concerns/redis_cacheable_spec.rb": 0.42222562700044364,8477 "spec/graphql/resolvers/project_jobs_resolver_spec.rb": 1.8575518729994656,8478 "spec/services/ci/compare_accessibility_reports_service_spec.rb": 1.5210793360001844,8479 "spec/services/ci/destroy_secure_file_service_spec.rb": 1.2866120260005118,8480 "spec/presenters/packages/nuget/package_metadata_presenter_spec.rb": 0.7964616910003315,8481 "spec/lib/gitlab/tracking/service_ping_context_spec.rb": 0.3264499460001389,8482 "spec/services/users/unblock_service_spec.rb": 1.0140496550002354,8483 "spec/lib/gitlab/graphql/authorize/object_authorization_spec.rb": 0.30661202800001774,8484 "spec/workers/flush_counter_increments_worker_spec.rb": 1.3254035520003526,8485 "spec/views/devise/shared/_signup_omniauth_provider_list_spec.rb": 0.5670991580000191,8486 "spec/graphql/resolvers/error_tracking/sentry_errors_resolver_spec.rb": 0.8039499010001236,8487 "spec/helpers/groups/settings_helper_spec.rb": 0.3576675040003465,8488 "spec/lib/api/helpers/merge_requests_helpers_spec.rb": 0.3387441550003132,8489 "spec/lib/gitlab/sidekiq_middleware/worker_context/client_spec.rb": 0.40134450099958485,8490 "spec/tooling/lib/tooling/helm3_client_spec.rb": 0.5102474319992325,8491 "spec/lib/gitlab/changelog/release_spec.rb": 0.733362095999837,8492 "spec/lib/gitlab/database/migrations/swap_columns_default_spec.rb": 0.320749906999481,8493 "spec/models/group_custom_attribute_spec.rb": 0.4469200269995781,8494 "spec/rubocop/cop/qa/fabricate_usage_spec.rb": 0.22265051300018968,8495 "spec/lib/banzai/filter/markdown_filter_spec.rb": 0.40039380100006383,8496 "spec/lib/gitlab/utils/deep_size_spec.rb": 0.301878878000025,8497 "spec/models/group_deploy_keys_group_spec.rb": 0.4997301740004332,8498 "spec/lib/gitlab/instrumentation/redis_spec.rb": 0.4072470009996323,8499 "spec/lib/gitlab/time_tracking_formatter_spec.rb": 0.4207031790001565,8500 "spec/lib/gitlab/ci/pipeline/preloader_spec.rb": 0.8065007409995815,8501 "spec/lib/gitlab/database/health_status/signals_spec.rb": 0.3482035850001921,8502 "spec/graphql/mutations/saved_replies/create_spec.rb": 0.41484300899992377,8503 "spec/services/spam/akismet_mark_as_spam_service_spec.rb": 0.6776813599999514,8504 "spec/lib/gitlab/usage/metrics/aggregates/sources/redis_hll_spec.rb": 0.22887378300038108,8505 "spec/workers/pipeline_notification_worker_spec.rb": 0.6855589599999803,8506 "spec/lib/gitlab/memory/watchdog/event_reporter_spec.rb": 0.3740976130002309,8507 "spec/rubocop/cop/active_record_association_reload_spec.rb": 0.32365717600077915,8508 "spec/lib/gitlab/health_checks/middleware_spec.rb": 0.21245973500026594,8509 "spec/lib/gitlab/session_spec.rb": 0.20332014500036166,8510 "spec/services/work_items/parent_links/base_service_spec.rb": 0.702588219000063,8511 "spec/models/integrations/integration_list_spec.rb": 1.0149387450001086,8512 "spec/rubocop/cop/migration/add_concurrent_index_spec.rb": 0.24958524200064858,8513 "spec/support_specs/helpers/stub_saas_features_spec.rb": 0.32437671499974385,8514 "spec/models/work_items/widgets/start_and_due_date_spec.rb": 0.7154921679994004,8515 "spec/graphql/resolvers/error_tracking/sentry_error_collection_resolver_spec.rb": 1.666246527000112,8516 "spec/lib/bulk_imports/common/pipelines/entity_finisher_spec.rb": 0.811743899999783,8517 "spec/lib/gitlab/git/patches/patch_spec.rb": 0.14876874899982795,8518 "spec/rubocop/cop/gitlab/delegate_predicate_methods_spec.rb": 0.28805527900021843,8519 "spec/graphql/resolvers/concerns/resolves_project_spec.rb": 0.5009111830004258,8520 "spec/models/clusters/agents/authorizations/ci_access/implicit_authorization_spec.rb": 0.569412387999364,8521 "spec/services/packages/npm/deprecate_package_service_spec.rb": 0.7192626570003995,8522 "spec/helpers/rss_helper_spec.rb": 0.5039357329997074,8523 "spec/lib/gitlab/incident_management/pager_duty/incident_issue_description_spec.rb": 0.24067849200037017,8524 "spec/graphql/mutations/security/ci_configuration/base_security_analyzer_spec.rb": 0.8666863859998557,8525 "spec/graphql/mutations/boards/update_spec.rb": 0.7867722210003194,8526 "spec/lib/gitlab/redis/cluster_util_spec.rb": 0.299837268000374,8527 "spec/initializers/action_mailer_hooks_spec.rb": 0.27589066000018647,8528 "spec/lib/gitlab/audit/deploy_key_author_spec.rb": 0.1753791769997406,8529 "spec/lib/gitlab/tracking/destinations/snowplow_spec.rb": 0.2904844580007193,8530 "spec/lib/api/base_spec.rb": 0.30205407699941134,8531 "spec/initializers/google_api_client_spec.rb": 0.27597441999932926,8532 "spec/workers/concerns/repository_check_queue_spec.rb": 0.1583304079995287,8533 "spec/lib/gitlab/database/postgres_autovacuum_activity_spec.rb": 0.4159849199995733,8534 "spec/lib/gitlab/ci/config/header/spec_spec.rb": 0.3133953160004239,8535 "spec/lib/gitlab/ci/config/interpolation/context_spec.rb": 0.3001967780000996,8536 "spec/lib/system_check/sidekiq_check_spec.rb": 0.2963265580001462,8537 "spec/lib/api/entities/project_job_token_scope_spec.rb": 0.540881060999709,8538 "spec/rubocop/cop/avoid_becomes_spec.rb": 0.2213380530001814,8539 "spec/lib/gitlab/config/entry/unspecified_spec.rb": 0.23064572299972497,8540 "spec/lib/gitlab/memory/watchdog/handlers/null_handler_spec.rb": 0.14238312999987102,8541 "spec/views/devise/confirmations/almost_there.html.haml_spec.rb": 0.30619992700030707,8542 "spec/lib/gitlab/json_logger_spec.rb": 0.2440351320001355,8543 "spec/lib/gitlab/github_import/single_endpoint_notes_importing_spec.rb": 0.27222875999996177,8544 "spec/lib/bulk_imports/groups/graphql/get_projects_query_spec.rb": 0.3466231950005749,8545 "spec/models/analytics/cycle_analytics/runtime_limiter_spec.rb": 0.22616876399933972,8546 "spec/lib/gitlab/bullet_spec.rb": 0.24653554199994687,8547 "spec/graphql/types/ci/config/job_restriction_type_spec.rb": 0.17184394700052508,8548 "spec/views/profiles/audit_log.html.haml_spec.rb": 0.3935724009998012,8549 "spec/graphql/types/projects/service_type_spec.rb": 0.21255176399972697,8550 "spec/lib/mattermost/command_spec.rb": 0.1868826869995246,8551 "spec/lib/gitlab/github_import/importer/attachments/base_importer_spec.rb": 0.14546010899994144,8552 "spec/graphql/types/ci/catalog/resource_sort_enum_spec.rb": 0.17165197699978307,8553 "spec/lib/gitlab/middleware/rack_multipart_tempfile_factory_spec.rb": 0.20600760500019533,8554 "spec/models/concerns/presentable_spec.rb": 0.21659745399938402,8555 "spec/models/concerns/packages/downloadable_spec.rb": 0.38171122199946694,8556 "spec/tooling/danger/clickhouse_spec.rb": 0.2233551429999352,8557 "spec/graphql/types/customer_relations/contact_sort_enum_spec.rb": 0.21216987499974493,8558 "spec/lib/gitlab/kubernetes/kubeconfig/entry/cluster_spec.rb": 0.1906728359999761,8559 "spec/lib/gitlab/utils/measuring_spec.rb": 0.18772212599924387,8560 "spec/models/concerns/database_reflection_spec.rb": 0.18466394600000058,8561 "spec/helpers/protected_refs_helper_spec.rb": 0.23615275300016947,8562 "spec/graphql/types/branch_protections/push_access_level_type_spec.rb": 0.1944519959997706,8563 "spec/lib/gitlab/graphql/timeout_spec.rb": 0.18706964700049866,8564 "spec/lib/sidebars/groups/super_sidebar_menus/deploy_menu_spec.rb": 0.18401844599975448,8565 "spec/graphql/types/organizations/group_sort_enum_spec.rb": 0.19233486599932803,8566 "spec/lib/system_check/app/gitlab_resque_config_exists_check_spec.rb": 0.19270156599941402,8567 "spec/graphql/types/ci/group_type_spec.rb": 0.18491966599958687,8568 "spec/lib/gitlab/kubernetes/kubeconfig/entry/context_spec.rb": 0.19157658600033756,8569 "spec/lib/api/entities/projects/repository_storage_move_spec.rb": 0.1743976970001313,8570 "spec/scripts/api/create_merge_request_discussion_spec.rb": 0.15458473800026695,8571 "spec/models/concerns/faster_cache_keys_spec.rb": 0.15884752799956914,8572 "spec/lib/gitlab/error_tracking/processor/context_payload_processor_spec.rb": 0.1483843390005859,8573 "spec/graphql/types/packages/maven/metadatum_type_spec.rb": 0.1656062780002685,8574 "spec/graphql/types/security/report_types_enum_spec.rb": 0.14411105900035182,8575 "spec/services/notes/render_service_spec.rb": 0.14594047900027363,8576 "spec/lib/microsoft_teams/activity_spec.rb": 0.1489450789995317,8577 "spec/dependencies/omniauth_saml_spec.rb": 0.15639343899965752,8578 "spec/serializers/accessibility_error_entity_spec.rb": 0.146903249000388318579}8580Knapsack global time execution for tests: 29m 18s8581Pending: (Failures listed here are expected and do not affect your suite's status)8582 1) Ci::CreatePipelineService#execute Pipeline for external pull requests when source is external pull request when config has external_pull_requests keywords when external pull request is specified when pull request is created from fork does not create an external pull request pipeline8583 # Not yet implemented8584 # ./spec/services/ci/create_pipeline_service_spec.rb:12428585 2) Gitlab::Database::MigrationHelpers::AutomaticLockWritesOnTables when reversing drop_table migrations when multiple databases for re-creating a gitlab_main table behaves like does not lock writes on table allows deleting records from the table8586 # Skipping because ci is shared or doesn't not exist8587 # ./spec/lib/gitlab/database/migration_helpers/automatic_lock_writes_on_tables_spec.rb:438588 3) Gitlab::Database::MigrationHelpers::AutomaticLockWritesOnTables when reversing drop_table migrations when multiple databases for re-creating a gitlab_main table behaves like locks writes on table errors on deleting8589 # Skipping because ci is shared or doesn't not exist8590 # ./spec/lib/gitlab/database/migration_helpers/automatic_lock_writes_on_tables_spec.rb:578591 4) Gitlab::Database::MigrationHelpers::AutomaticLockWritesOnTables when reversing drop_table migrations when multiple databases for re-creating a gitlab_ci table behaves like does not lock writes on table allows deleting records from the table8592 # Skipping because ci is shared or doesn't not exist8593 # ./spec/lib/gitlab/database/migration_helpers/automatic_lock_writes_on_tables_spec.rb:438594 5) Gitlab::Database::MigrationHelpers::AutomaticLockWritesOnTables when reversing drop_table migrations when multiple databases for re-creating a gitlab_ci table behaves like locks writes on table errors on deleting8595 # Skipping because ci is shared or doesn't not exist8596 # ./spec/lib/gitlab/database/migration_helpers/automatic_lock_writes_on_tables_spec.rb:578597 6) Gitlab::Database::MigrationHelpers::AutomaticLockWritesOnTables when reversing drop_table migrations when multiple databases for re-creating a gitlab_shared table behaves like does not lock writes on table allows deleting records from the table8598 # Skipping because ci is shared or doesn't not exist8599 # ./spec/lib/gitlab/database/migration_helpers/automatic_lock_writes_on_tables_spec.rb:438600 7) Gitlab::Database::MigrationHelpers::AutomaticLockWritesOnTables when reversing drop_table migrations when multiple databases for re-creating a gitlab_shared table behaves like does not lock writes on table allows deleting records from the table8601 # Skipping because ci is shared or doesn't not exist8602 # ./spec/lib/gitlab/database/migration_helpers/automatic_lock_writes_on_tables_spec.rb:438603 8) Gitlab::Database::MigrationHelpers::AutomaticLockWritesOnTables when executing create_table migrations when multiple databases for creating a gitlab_main table behaves like does not lock writes on table allows deleting records from the table8604 # Skipping because ci is shared or doesn't not exist8605 # ./spec/lib/gitlab/database/migration_helpers/automatic_lock_writes_on_tables_spec.rb:438606 9) Gitlab::Database::MigrationHelpers::AutomaticLockWritesOnTables when executing create_table migrations when multiple databases for creating a gitlab_main table behaves like locks writes on table errors on deleting8607 # Skipping because ci is shared or doesn't not exist8608 # ./spec/lib/gitlab/database/migration_helpers/automatic_lock_writes_on_tables_spec.rb:578609 10) Gitlab::Database::MigrationHelpers::AutomaticLockWritesOnTables when executing create_table migrations when multiple databases for creating a gitlab_main table when table listed as a deleted table behaves like does not lock writes on table allows deleting records from the table8610 # Skipping because ci is shared or doesn't not exist8611 # ./spec/lib/gitlab/database/migration_helpers/automatic_lock_writes_on_tables_spec.rb:438612 11) Gitlab::Database::MigrationHelpers::AutomaticLockWritesOnTables when executing create_table migrations when multiple databases for creating a gitlab_main table when the migration skips automatic locking of tables behaves like does not lock writes on table allows deleting records from the table8613 # Skipping because ci is shared or doesn't not exist8614 # ./spec/lib/gitlab/database/migration_helpers/automatic_lock_writes_on_tables_spec.rb:438615 12) Gitlab::Database::MigrationHelpers::AutomaticLockWritesOnTables when executing create_table migrations when multiple databases for creating a gitlab_main table when migration does not run within a transaction behaves like locks writes on table using WithLockRetries locks the writes on the table using WithLockRetries8616 # Skipping because ci is shared or doesn't not exist8617 # ./spec/lib/gitlab/database/migration_helpers/automatic_lock_writes_on_tables_spec.rb:748618 13) Gitlab::Database::MigrationHelpers::AutomaticLockWritesOnTables when executing create_table migrations when multiple databases for creating a gitlab_main table when the SKIP_AUTOMATIC_LOCK_ON_WRITES feature flag is set behaves like does not lock writes on table allows deleting records from the table8619 # Skipping because ci is shared or doesn't not exist8620 # ./spec/lib/gitlab/database/migration_helpers/automatic_lock_writes_on_tables_spec.rb:438621 14) Gitlab::Database::MigrationHelpers::AutomaticLockWritesOnTables when executing create_table migrations when multiple databases for creating a gitlab_main table when the automatic_lock_writes_on_table feature flag is disabled behaves like does not lock writes on table allows deleting records from the table8622 # Skipping because ci is shared or doesn't not exist8623 # ./spec/lib/gitlab/database/migration_helpers/automatic_lock_writes_on_tables_spec.rb:438624 15) Gitlab::Database::MigrationHelpers::AutomaticLockWritesOnTables when executing create_table migrations when multiple databases for creating a gitlab_main_clusterwide table behaves like does not lock writes on table allows deleting records from the table8625 # Skipping because ci is shared or doesn't not exist8626 # ./spec/lib/gitlab/database/migration_helpers/automatic_lock_writes_on_tables_spec.rb:438627 16) Gitlab::Database::MigrationHelpers::AutomaticLockWritesOnTables when executing create_table migrations when multiple databases for creating a gitlab_main_clusterwide table behaves like locks writes on table errors on deleting8628 # Skipping because ci is shared or doesn't not exist8629 # ./spec/lib/gitlab/database/migration_helpers/automatic_lock_writes_on_tables_spec.rb:578630 17) Gitlab::Database::MigrationHelpers::AutomaticLockWritesOnTables when executing create_table migrations when multiple databases for creating a gitlab_main_cell table behaves like does not lock writes on table allows deleting records from the table8631 # Skipping because ci is shared or doesn't not exist8632 # ./spec/lib/gitlab/database/migration_helpers/automatic_lock_writes_on_tables_spec.rb:438633 18) Gitlab::Database::MigrationHelpers::AutomaticLockWritesOnTables when executing create_table migrations when multiple databases for creating a gitlab_main_cell table behaves like locks writes on table errors on deleting8634 # Skipping because ci is shared or doesn't not exist8635 # ./spec/lib/gitlab/database/migration_helpers/automatic_lock_writes_on_tables_spec.rb:578636 19) Gitlab::Database::MigrationHelpers::AutomaticLockWritesOnTables when executing create_table migrations when multiple databases for creating a gitlab_pm table behaves like does not lock writes on table allows deleting records from the table8637 # Skipping because ci is shared or doesn't not exist8638 # ./spec/lib/gitlab/database/migration_helpers/automatic_lock_writes_on_tables_spec.rb:438639 20) Gitlab::Database::MigrationHelpers::AutomaticLockWritesOnTables when executing create_table migrations when multiple databases for creating a gitlab_pm table behaves like locks writes on table errors on deleting8640 # Skipping because ci is shared or doesn't not exist8641 # ./spec/lib/gitlab/database/migration_helpers/automatic_lock_writes_on_tables_spec.rb:578642 21) Gitlab::Database::MigrationHelpers::AutomaticLockWritesOnTables when executing create_table migrations when multiple databases for creating a gitlab_ci table behaves like does not lock writes on table allows deleting records from the table8643 # Skipping because ci is shared or doesn't not exist8644 # ./spec/lib/gitlab/database/migration_helpers/automatic_lock_writes_on_tables_spec.rb:438645 22) Gitlab::Database::MigrationHelpers::AutomaticLockWritesOnTables when executing create_table migrations when multiple databases for creating a gitlab_ci table behaves like locks writes on table errors on deleting8646 # Skipping because ci is shared or doesn't not exist8647 # ./spec/lib/gitlab/database/migration_helpers/automatic_lock_writes_on_tables_spec.rb:578648 23) Gitlab::Database::MigrationHelpers::AutomaticLockWritesOnTables when executing create_table migrations when multiple databases for creating a gitlab_ci table when table listed as a deleted table behaves like does not lock writes on table allows deleting records from the table8649 # Skipping because ci is shared or doesn't not exist8650 # ./spec/lib/gitlab/database/migration_helpers/automatic_lock_writes_on_tables_spec.rb:438651 24) Gitlab::Database::MigrationHelpers::AutomaticLockWritesOnTables when executing create_table migrations when multiple databases for creating a gitlab_ci table when the migration skips automatic locking of tables behaves like does not lock writes on table allows deleting records from the table8652 # Skipping because ci is shared or doesn't not exist8653 # ./spec/lib/gitlab/database/migration_helpers/automatic_lock_writes_on_tables_spec.rb:438654 25) Gitlab::Database::MigrationHelpers::AutomaticLockWritesOnTables when executing create_table migrations when multiple databases for creating a gitlab_ci table when the SKIP_AUTOMATIC_LOCK_ON_WRITES feature flag is set behaves like does not lock writes on table allows deleting records from the table8655 # Skipping because ci is shared or doesn't not exist8656 # ./spec/lib/gitlab/database/migration_helpers/automatic_lock_writes_on_tables_spec.rb:438657 26) Gitlab::Database::MigrationHelpers::AutomaticLockWritesOnTables when executing create_table migrations when multiple databases for creating a gitlab_ci table when the automatic_lock_writes_on_table feature flag is disabled behaves like does not lock writes on table allows deleting records from the table8658 # Skipping because ci is shared or doesn't not exist8659 # ./spec/lib/gitlab/database/migration_helpers/automatic_lock_writes_on_tables_spec.rb:438660 27) Gitlab::Database::MigrationHelpers::AutomaticLockWritesOnTables when executing create_table migrations when multiple databases for creating gitlab_shared table behaves like does not lock writes on table allows deleting records from the table8661 # Skipping because ci is shared or doesn't not exist8662 # ./spec/lib/gitlab/database/migration_helpers/automatic_lock_writes_on_tables_spec.rb:438663 28) Gitlab::Database::MigrationHelpers::AutomaticLockWritesOnTables when executing create_table migrations when multiple databases for creating gitlab_shared table behaves like does not lock writes on table allows deleting records from the table8664 # Skipping because ci is shared or doesn't not exist8665 # ./spec/lib/gitlab/database/migration_helpers/automatic_lock_writes_on_tables_spec.rb:438666 29) Gitlab::Database::MigrationHelpers::AutomaticLockWritesOnTables when executing create_table migrations when multiple databases for creating a gitlab_geo table behaves like does not lock writes on table allows deleting records from the table8667 # Skipping because ci is shared or doesn't not exist8668 # ./spec/lib/gitlab/database/migration_helpers/automatic_lock_writes_on_tables_spec.rb:438669 30) Gitlab::Database::MigrationHelpers::AutomaticLockWritesOnTables when executing create_table migrations when multiple databases for creating an unknown gitlab_schema table raises an error about undefined gitlab_schema8670 # Skipping because ci is shared or doesn't not exist8671 # ./spec/lib/gitlab/database/migration_helpers/automatic_lock_writes_on_tables_spec.rb:2638672 31) Gitlab::Database::MigrationHelpers::AutomaticLockWritesOnTables when renaming a table when a gitlab_main table behaves like does not lock writes on table allows deleting records from the table8673 # Skipping because ci is shared or doesn't not exist8674 # ./spec/lib/gitlab/database/migration_helpers/automatic_lock_writes_on_tables_spec.rb:438675 32) Gitlab::Database::MigrationHelpers::AutomaticLockWritesOnTables when renaming a table when a gitlab_main table behaves like locks writes on table errors on deleting8676 # Skipping because ci is shared or doesn't not exist8677 # ./spec/lib/gitlab/database/migration_helpers/automatic_lock_writes_on_tables_spec.rb:578678 33) Gitlab::Database::MigrationHelpers::AutomaticLockWritesOnTables when renaming a table when a gitlab_ci table behaves like does not lock writes on table allows deleting records from the table8679 # Skipping because ci is shared or doesn't not exist8680 # ./spec/lib/gitlab/database/migration_helpers/automatic_lock_writes_on_tables_spec.rb:438681 34) Gitlab::Database::MigrationHelpers::AutomaticLockWritesOnTables when renaming a table when a gitlab_ci table behaves like locks writes on table errors on deleting8682 # Skipping because ci is shared or doesn't not exist8683 # ./spec/lib/gitlab/database/migration_helpers/automatic_lock_writes_on_tables_spec.rb:578684 35) DesignManagement::SaveDesignsService#execute when the feature is available scalability runs the same queries for all requests, regardless of number of files8686 # ./spec/services/design_management/save_designs_service_spec.rb:4128687 36) Appearance with uploads behaves like model with uploads .destroy with not mounted uploads with local files deletes any FileUploader uploads which are not mounted8688 # No reason given8689 # ./spec/support/shared_examples/models/with_uploads_shared_examples.rb:238690 37) Appearance with uploads behaves like model with uploads .destroy with not mounted uploads with local files deletes local files8691 # No reason given8692 # ./spec/support/shared_examples/models/with_uploads_shared_examples.rb:278693 38) Appearance with uploads behaves like model with uploads .destroy with not mounted uploads with remote files deletes any FileUploader uploads which are not mounted8694 # No reason given8695 # ./spec/support/shared_examples/models/with_uploads_shared_examples.rb:378696 39) Appearance with uploads behaves like model with uploads .destroy with not mounted uploads with remote files deletes remote files8697 # No reason given8698 # ./spec/support/shared_examples/models/with_uploads_shared_examples.rb:418699 40) BackgroundMigration::CiDatabaseWorker behaves like it runs background migration jobs defining the job attributes defines the data_consistency as always8700 # Skipping because ci is shared or doesn't not exist8701 # ./spec/support/shared_examples/workers/background_migration_worker_shared_examples.rb:98702 41) BackgroundMigration::CiDatabaseWorker behaves like it runs background migration jobs defining the job attributes defines the retry count in sidekiq_options8703 # Skipping because ci is shared or doesn't not exist8704 # ./spec/support/shared_examples/workers/background_migration_worker_shared_examples.rb:138705 42) BackgroundMigration::CiDatabaseWorker behaves like it runs background migration jobs defining the job attributes defines the feature_category as database8706 # Skipping because ci is shared or doesn't not exist8707 # ./spec/support/shared_examples/workers/background_migration_worker_shared_examples.rb:178708 43) BackgroundMigration::CiDatabaseWorker behaves like it runs background migration jobs defining the job attributes defines the urgency as throttled8709 # Skipping because ci is shared or doesn't not exist8710 # ./spec/support/shared_examples/workers/background_migration_worker_shared_examples.rb:218711 44) BackgroundMigration::CiDatabaseWorker behaves like it runs background migration jobs defining the job attributes defines the loggable_arguments8712 # Skipping because ci is shared or doesn't not exist8713 # ./spec/support/shared_examples/workers/background_migration_worker_shared_examples.rb:258714 45) BackgroundMigration::CiDatabaseWorker behaves like it runs background migration jobs .tracking_database does not raise an error8715 # Skipping because ci is shared or doesn't not exist8716 # ./spec/support/shared_examples/workers/background_migration_worker_shared_examples.rb:318717 46) BackgroundMigration::CiDatabaseWorker behaves like it runs background migration jobs .tracking_database overrides the method to return the tracking database8718 # Skipping because ci is shared or doesn't not exist8719 # ./spec/support/shared_examples/workers/background_migration_worker_shared_examples.rb:358720 47) BackgroundMigration::CiDatabaseWorker behaves like it runs background migration jobs .minimum_interval returns 2 minutes8721 # Skipping because ci is shared or doesn't not exist8722 # ./spec/support/shared_examples/workers/background_migration_worker_shared_examples.rb:418723 48) BackgroundMigration::CiDatabaseWorker behaves like it runs background migration jobs #perform when execute_background_migrations feature flag is disabled does not perform the job, reschedules it in the future, and logs a message8724 # Skipping because ci is shared or doesn't not exist8725 # ./spec/support/shared_examples/workers/background_migration_worker_shared_examples.rb:548726 49) BackgroundMigration::CiDatabaseWorker behaves like it runs background migration jobs #perform when disallow_database_ddl_feature_flags feature flag is disabled does not perform the job, reschedules it in the future, and logs a message8727 # Skipping because ci is shared or doesn't not exist8728 # ./spec/support/shared_examples/workers/background_migration_worker_shared_examples.rb:868729 50) BackgroundMigration::CiDatabaseWorker behaves like it runs background migration jobs #perform when execute_background_migrations feature flag is enabled performs jobs using the coordinator for the worker8730 # Skipping because ci is shared or doesn't not exist8731 # ./spec/support/shared_examples/workers/background_migration_worker_shared_examples.rb:1238732 51) BackgroundMigration::CiDatabaseWorker behaves like it runs background migration jobs #perform when execute_background_migrations feature flag is enabled when lease can be obtained sets up the shared connection before checking replication8733 # Skipping because ci is shared or doesn't not exist8734 # ./spec/support/shared_examples/workers/background_migration_worker_shared_examples.rb:1458735 52) BackgroundMigration::CiDatabaseWorker behaves like it runs background migration jobs #perform when execute_background_migrations feature flag is enabled when lease can be obtained performs a background migration8736 # Skipping because ci is shared or doesn't not exist8737 # ./spec/support/shared_examples/workers/background_migration_worker_shared_examples.rb:1548738 53) BackgroundMigration::CiDatabaseWorker behaves like it runs background migration jobs #perform when execute_background_migrations feature flag is enabled when lease can be obtained can run scheduled job and retried job concurrently8739 # Skipping because ci is shared or doesn't not exist8740 # ./spec/support/shared_examples/workers/background_migration_worker_shared_examples.rb:1688741 54) BackgroundMigration::CiDatabaseWorker behaves like it runs background migration jobs #perform when execute_background_migrations feature flag is enabled when lease can be obtained sets the class that will be executed as the caller_id8742 # Skipping because ci is shared or doesn't not exist8743 # ./spec/support/shared_examples/workers/background_migration_worker_shared_examples.rb:1788744 55) BackgroundMigration::CiDatabaseWorker behaves like it runs background migration jobs #perform when execute_background_migrations feature flag is enabled when lease can be obtained when lease_attempts is 1 performs a background migration8745 # Skipping because ci is shared or doesn't not exist8746 # ./spec/support/shared_examples/workers/background_migration_worker_shared_examples.rb:1618747 56) BackgroundMigration::CiDatabaseWorker behaves like it runs background migration jobs #perform when execute_background_migrations feature flag is enabled when lease not obtained (migration of same class was performed recently) reschedules the migration and decrements the lease_attempts8748 # Skipping because ci is shared or doesn't not exist8749 # ./spec/support/shared_examples/workers/background_migration_worker_shared_examples.rb:2048750 57) BackgroundMigration::CiDatabaseWorker behaves like it runs background migration jobs #perform when execute_background_migrations feature flag is enabled when lease not obtained (migration of same class was performed recently) when lease_attempts is 1 reschedules the migration and decrements the lease_attempts8751 # Skipping because ci is shared or doesn't not exist8752 # ./spec/support/shared_examples/workers/background_migration_worker_shared_examples.rb:2158753 58) BackgroundMigration::CiDatabaseWorker behaves like it runs background migration jobs #perform when execute_background_migrations feature flag is enabled when lease not obtained (migration of same class was performed recently) when lease_attempts is 0 gives up performing the migration8754 # Skipping because ci is shared or doesn't not exist8755 # ./spec/support/shared_examples/workers/background_migration_worker_shared_examples.rb:2278756 59) BackgroundMigration::CiDatabaseWorker behaves like it runs background migration jobs #perform when execute_background_migrations feature flag is enabled when database is not healthy reschedules a migration if the database is not healthy8757 # Skipping because ci is shared or doesn't not exist8758 # ./spec/support/shared_examples/workers/background_migration_worker_shared_examples.rb:2448759 60) BackgroundMigration::CiDatabaseWorker behaves like it runs background migration jobs #perform when execute_background_migrations feature flag is enabled when database is not healthy increments the unhealthy counter8760 # Skipping because ci is shared or doesn't not exist8761 # ./spec/support/shared_examples/workers/background_migration_worker_shared_examples.rb:2528762 61) BackgroundMigration::CiDatabaseWorker behaves like it runs background migration jobs #perform when execute_background_migrations feature flag is enabled when database is not healthy when lease_attempts is 0 gives up performing the migration8763 # Skipping because ci is shared or doesn't not exist8764 # ./spec/support/shared_examples/workers/background_migration_worker_shared_examples.rb:2618765Failures:8766 1) Projects::ParticipantsService#execute includes `All Project and Group Members`8767 Failure/Error: expect(run_service).to include(a_hash_including({ username: "all", name: "All Project and Group Members" }))8768 expected [{:availability => nil, :avatar_url => "https://www.gravatar.com/avatar/380d51a17a1ab6fc34c72821db95b026?...acecb35e8a6af1cb?s=80&d=identicon", :name => "Sidney Jones1052", :type => "User", :username => "user367"}] to include (a hash including {:username => "all", :name => "All Project and Group Members"})8769 Diff:8770 @@ -1,12 +1,23 @@8771 -[(a hash including {:username => "all", :name => "All Project and Group Members"})]8772 +[{:availability=>nil,8773 + :avatar_url=>8775 + :name=>"Sidney Jones1053",8776 + :type=>"User",8777 + :username=>"namespace646"},8778 + {:availability=>nil,8779 + :avatar_url=>8781 + :name=>"Sidney Jones1052",8782 + :type=>"User",8783 + :username=>"user367"}]8784 # ./spec/services/projects/participants_service_spec.rb:30:in `block (3 levels) in <top (required)>'8785 # ./spec/spec_helper.rb:440:in `block (3 levels) in <top (required)>'8786 # ./spec/support/sidekiq_middleware.rb:18:in `with_sidekiq_server_middleware'8787 # ./spec/spec_helper.rb:431:in `block (2 levels) in <top (required)>'8788 # ./spec/spec_helper.rb:427:in `block (3 levels) in <top (required)>'8789 # ./lib/gitlab/application_context.rb:66:in `with_raw_context'8790 # ./spec/spec_helper.rb:427:in `block (2 levels) in <top (required)>'8791 # ./spec/spec_helper.rb:267:in `block (2 levels) in <top (required)>'8792 # ./spec/support/system_exit_detected.rb:7:in `block (2 levels) in <top (required)>'8793 # ./spec/support/fast_quarantine.rb:22:in `block (2 levels) in <top (required)>'8794 # ./spec/support/database/prevent_cross_joins.rb:106:in `block (3 levels) in <top (required)>'8795 # ./spec/support/database/prevent_cross_joins.rb:60:in `with_cross_joins_prevented'8796 # ./spec/support/database/prevent_cross_joins.rb:106:in `block (2 levels) in <top (required)>'8797Finished in 30 minutes 13 seconds (files took 42.64 seconds to load)87984404 examples, 1 failure, 61 pending8799Failed examples:8800rspec ./spec/services/projects/participants_service_spec.rb:29 # Projects::ParticipantsService#execute includes `All Project and Group Members`8801Randomized with seed 196938802[TEST PROF INFO] Time spent in factories: 12:36.399 (41.55% of total time)8803Stopped processing SimpleCov as a previous error not related to SimpleCov has been detected8804RSpec exited with 1.8805[job-metrics] Updating job metrics tag for the CI/CD job.8806RSPEC_RETRIED_TESTS_REPORT_PATH: rspec/retried_tests-5336651001.txt8807Retrying the failing examples in a new RSpec process...8808$ gem install junit_merge --no-document --version 0.1.28809Successfully installed nokogiri-1.15.4-x86_64-linux8810Successfully installed junit_merge-0.1.288112 gems installed8812==> 'gem install junit_merge --no-document --version 0.1.2' succeeded in 1 seconds.8813Running RSpec command: bin/rspec -Ispec -rspec_helper --color --failure-exit-code 1 --error-exit-code 2 --format documentation --format Support::Formatters::JsonFormatter --out rspec/rspec-retry-5336651001.json --format RspecJunitFormatter --out rspec/rspec-retry-5336651001.xml --only-failures --pattern "spec/{bin,channels,components,config,contracts,db,dependencies,elastic,elastic_integration,experiments,factories,finders,frontend,graphql,haml_lint,helpers,initializers,lib,metrics_server,models,policies,presenters,rack_servers,replicators,routing,rubocop,scripts,serializers,services,sidekiq,sidekiq_cluster,spam,support_specs,tasks,uploaders,validators,views,workers,tooling}{,/**/}*_spec.rb"8814/builds/gitlab-org/gitlab/ee/app/services/remote_development/service_response_factory.rb:41: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!8815/builds/gitlab-org/gitlab/ee/app/services/remote_development/workspaces/create_service.rb:28: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!8816/builds/gitlab-org/gitlab/ee/app/services/remote_development/workspaces/reconcile_service.rb:38: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!8817/builds/gitlab-org/gitlab/ee/app/services/remote_development/workspaces/update_service.rb:28: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!8818/builds/gitlab-org/gitlab/ee/lib/remote_development/agent_config/main.rb:32: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!8819/builds/gitlab-org/gitlab/ee/lib/remote_development/agent_config/updater.rb:11: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!8820/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/authorizer.rb:12: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!8821/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/authorizer.rb:13: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!8822/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/creator.rb:15: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!8823/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/creator.rb:19: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!8824/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/devfile_fetcher.rb:15: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!8825/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/devfile_fetcher.rb:16: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!8826/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/devfile_flattener.rb:12: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!8827/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/editor_component_injector.rb:12: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!8828/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/editor_component_injector.rb:17: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!8829/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/editor_component_injector.rb:18: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!8830/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/personal_access_token_creator.rb:12: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!8831/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/personal_access_token_creator.rb:17: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!8832/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/post_flatten_devfile_validator.rb:43: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!8833/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/post_flatten_devfile_validator.rb:54: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!8834/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/post_flatten_devfile_validator.rb:102: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!8835/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/post_flatten_devfile_validator.rb:126: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!8836/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/post_flatten_devfile_validator.rb:159: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!8837/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/post_flatten_devfile_validator.rb:202: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!8838/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/post_flatten_devfile_validator.rb:235: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!8839/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/pre_flatten_devfile_validator.rb:24: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!8840/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/pre_flatten_devfile_validator.rb:52: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!8841/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/project_cloner_component_injector.rb:12: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!8842/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/project_cloner_component_injector.rb:17: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!8843/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/project_cloner_component_injector.rb:18: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!8844/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/project_cloner_component_injector.rb:23: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!8845/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/volume_component_injector.rb:12: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!8846/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/volume_component_injector.rb:13: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!8847/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/volume_component_injector.rb:14: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!8848/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/workspace_creator.rb:15: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!8849/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/workspace_creator.rb:24: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!8850/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/workspace_creator.rb:25: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!8851/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/workspace_creator.rb:28: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!8852/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/workspace_variables_creator.rb:12: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!8853/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/reconcile/main.rb:43: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!8854/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/update/authorizer.rb:12: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!8855/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/update/updater.rb:13: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!8856/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/reconcile/input/agent_infos_observer.rb:15: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!8857/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/reconcile/input/params_extractor.rb:14: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!8858/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/reconcile/input/params_extractor.rb:16: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!8859/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/reconcile/input/params_to_infos_converter.rb:14: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!8860/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/reconcile/input/params_validator.rb:15: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!8861/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/reconcile/output/rails_infos_observer.rb:11: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!8862/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/reconcile/output/workspaces_to_rails_infos_converter.rb:15: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!8863/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!8864/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!8865/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!8866/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!8867Run options: include {:last_run_status=>"failed"}8868Test environment set up in 0.438577794 seconds8869Projects::ParticipantsService8870 #execute8871 includes `All Project and Group Members`8872auto_explain log contains 1790 entries for main, writing to /builds/gitlab-org/gitlab/auto_explain/rspec-unit-pg14-single-db-ci-connection-28-28.21471.main.ndjson.gz8873took 30.4828649988874auto_explain log contains 1788 entries for ci, writing to /builds/gitlab-org/gitlab/auto_explain/rspec-unit-pg14-single-db-ci-connection-28-28.21471.ci.ndjson.gz8875took 25.7971326248876Finished in 1 minute 2.78 seconds (files took 45.99 seconds to load)88771 example, 0 failures8878[TEST PROF INFO] Time spent in factories: 00:01.422 (2.21% of total time)8879Loading rspec/rspec-5336651001.json...8880Merged rspec/rspec-retry-5336651001.json adding 4 results.8881Saved rspec/rspec-5336651001.json.8882A test was flaky and succeeded after being retried. Checking to see if flaky test is part of this MR...8883Flaky test was not part of this MR.8885Running after script...8886$ echo -e "\e[0Ksection_start:`date +%s`:report_results_section[collapsed=true]\r\e[0KReport results"8890$ tooling/bin/push_job_metrics || true8891[job-metrics] Pushing job metrics file for the CI/CD job.8892[job-metrics] Pushed 4 CI job metric entries to InfluxDB.8894Not uploading cache ruby-gems-debian-bullseye-ruby-3.0-16 due to policy8896Uploading artifacts...8897auto_explain/: found 5 matching artifact files and directories 8898coverage/: found 4 matching artifact files and directories 8899crystalball/: found 2 matching artifact files and directories 8900WARNING: deprecations/: no matching files. Ensure that the artifact path is relative to the working directory (/builds/gitlab-org/gitlab) 8901knapsack/: found 4 matching artifact files and directories 8902rspec/: found 19 matching artifact files and directories 8903WARNING: tmp/capybara/: no matching files. Ensure that the artifact path is relative to the working directory (/builds/gitlab-org/gitlab) 8904log/*.log: found 17 matching artifact files and directories 8905WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/5336651001/artifacts?artifact_format=zip&artifact_type=archive&expire_in=31d new-url=https://gitlab.com8906WARNING: Retrying... context=artifacts-uploader error=request redirected8907Uploading artifacts as "archive" to coordinator... 201 Created id=5336651001 responseStatus=201 Created token=64_bMUCx8908Uploading artifacts...8909rspec/rspec-*.xml: found 2 matching artifact files and directories 8910WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/5336651001/artifacts?artifact_format=gzip&artifact_type=junit&expire_in=31d new-url=https://gitlab.com8911WARNING: Retrying... context=artifacts-uploader error=request redirected8912Uploading artifacts as "junit" to coordinator... 201 Created id=5336651001 responseStatus=201 Created token=64_bMUCx8914Job succeeded