rspec unit pg14-as-if-foss single-db 28/28
Passed Started
by
@vshushlin

Vladimir Shushlin
1 #environment_url2 is expected to eq "http://prd.example.com/$CI_JOB_NAME"3 when options does not include url4 fetches from the persisted environment5 when persisted environment is absent6 is expected to be nil7 #environment_slug8 is expected to eq "review-master-8dyme2"9 when persisted environment is absent10 is expected to be nil11 environment12 #has_environment_keyword?13 when environment is defined14 is expected to be truthy15 when environment is not defined16 is expected to be falsey17 #expanded_environment_name18 when environment uses $CI_COMMIT_REF_NAME19 is expected to eq "review/master"20 when environment uses yaml_variables containing symbol keys21 returns an expanded environment name with a list of variables22 when job metadata has already persisted the expanded environment name23 returns a persisted expanded environment name without a list of variables24 when using persisted variables25 is expected to eq "review/x"26 when environment name uses a nested variable27 is expected to eq "review/master"28 #expanded_kubernetes_namespace29 environment and namespace are not set30 is expected to be nil31 environment is specified32 namespace is not set33 is expected to be nil34 namespace is provided35 with a static value36 is expected to eq "production"37 with a dynamic value38 is expected to eq "deploy-master"39 #deployment_job?40 when environment is defined41 no action is defined42 is expected to be truthy43 and start action is defined44 is expected to be truthy45 when environment is not defined46 is expected to be falsey47 #stops_environment?48 when environment is defined49 no action is defined50 is expected to be falsey51 and stop action is defined52 is expected to be truthy53 when environment is not defined54 is expected to be falsey55 #persisted_environment56 when referenced literally57 is expected to eq #<Environment id: 31, project_id: 1, name: "foo-master", created_at: "2023-10-20 08:29:56.459717640 +...", merge_request_id: nil, cluster_agent_id: nil, kubernetes_namespace: nil, flux_resource_path: nil>58 when referenced with a variable59 is expected to eq #<Environment id: 32, project_id: 1, name: "foo-master", created_at: "2023-10-20 08:29:56.583078069 +...", merge_request_id: nil, cluster_agent_id: nil, kubernetes_namespace: nil, flux_resource_path: nil>60 when there is no environment61 is expected to be nil62 when job has a stop environment63 expands environment name64 #deployment_status65 when job is a last deployment66 is expected to eq :last67 when there is a newer job with deployment68 is expected to eq :out_of_date69 when job with deployment has failed70 is expected to eq :failed71 when job with deployment is running72 is expected to eq :creating73 .ref_protected74 when protected is true75 is expected to include #<Ci::Build status: "pending", finished_at: nil, created_at: "2023-10-20 08:50:29.000000000 +0000", u... "stage", id: 56, stage_id: 1, partition_id: 100, auto_canceled_by_partition_id: 100, tag_list: nil>76 when protected is false77 is expected not to include #<Ci::Build status: "pending", finished_at: nil, created_at: "2023-10-20 08:50:29.000000000 +0000", u... "stage", id: 57, stage_id: 1, partition_id: 100, auto_canceled_by_partition_id: 100, tag_list: nil>78 when protected is nil79 is expected not to include #<Ci::Build status: "pending", finished_at: nil, created_at: "2023-10-20 08:50:29.000000000 +0000", u... "stage", id: 58, stage_id: 1, partition_id: 100, auto_canceled_by_partition_id: 100, tag_list: nil>80 .with_downloadable_artifacts81 when job does not have a downloadable artifact82 does not return the job83 when job has a accessibility artifact84 returns the job85 when job has a api_fuzzing artifact86 returns the job87 when job has a archive artifact88 returns the job89 when job has a cobertura artifact90 returns the job91 when job has a codequality artifact92 returns the job93 when job has a container_scanning artifact94 returns the job95 when job has a dast artifact96 returns the job97 when job has a dependency_scanning artifact98 returns the job99 when job has a dotenv artifact100 returns the job101 when job has a junit artifact102 returns the job103 when job has a license_scanning artifact104 returns the job105 when job has a lsif artifact106 returns the job107 when job has a metrics artifact108 returns the job109 when job has a performance artifact110 returns the job111 when job has a browser_performance artifact112 returns the job113 when job has a load_performance artifact114 returns the job115 when job has a sast artifact116 returns the job117 when job has a secret_detection artifact118 returns the job119 when job has a requirements artifact120 returns the job121 when job has a requirements_v2 artifact122 returns the job123 when job has a cluster_image_scanning artifact124 returns the job125 when job has a cyclonedx artifact126 returns the job127 when job has a non-downloadable artifact128 does not return the job129 .with_erasable_artifacts130 when job does not have any artifacts131 does not return the job132 when job has a archive artifact133 returns the job134 when job has a metadata artifact135 returns the job136 when job has a junit artifact137 returns the job138 when job has a sast artifact139 returns the job140 when job has a dependency_scanning artifact141 returns the job142 when job has a container_scanning artifact143 returns the job144 when job has a dast artifact145 returns the job146 when job has a codequality artifact147 returns the job148 when job has a license_scanning artifact149 returns the job150 when job has a performance artifact151 returns the job152 when job has a metrics artifact153 returns the job154 when job has a metrics_referee artifact155 returns the job156 when job has a network_referee artifact157 returns the job158 when job has a lsif artifact159 returns the job160 when job has a dotenv artifact161 returns the job162 when job has a cobertura artifact163 returns the job164 when job has a terraform artifact165 returns the job166 when job has a accessibility artifact167 returns the job168 when job has a cluster_applications artifact169 returns the job170 when job has a secret_detection artifact171 returns the job172 when job has a requirements artifact173 returns the job174 when job has a coverage_fuzzing artifact175 returns the job176 when job has a browser_performance artifact177 returns the job178 when job has a load_performance artifact179 returns the job180 when job has a api_fuzzing artifact181 returns the job182 when job has a cluster_image_scanning artifact183 returns the job184 when job has a cyclonedx artifact185 returns the job186 when job has a requirements_v2 artifact187 returns the job188 when job has a annotations artifact189 returns the job190 when job has a non-erasable artifact191 does not return the job192 .with_any_artifacts193 when job does not have any artifacts194 does not return the job195 when job has a archive artifact196 returns the job197 when job has a metadata artifact198 returns the job199 when job has a trace artifact200 returns the job201 when job has a junit artifact202 returns the job203 when job has a sast artifact204 returns the job205 when job has a dependency_scanning artifact206 returns the job207 when job has a container_scanning artifact208 returns the job209 when job has a dast artifact210 returns the job211 when job has a codequality artifact212 returns the job213 when job has a license_scanning artifact214 returns the job215 when job has a performance artifact216 returns the job217 when job has a metrics artifact218 returns the job219 when job has a metrics_referee artifact220 returns the job221 when job has a network_referee artifact222 returns the job223 when job has a lsif artifact224 returns the job225 when job has a dotenv artifact226 returns the job227 when job has a cobertura artifact228 returns the job229 when job has a terraform artifact230 returns the job231 when job has a accessibility artifact232 returns the job233 when job has a cluster_applications artifact234 returns the job235 when job has a secret_detection artifact236 returns the job237 when job has a requirements artifact238 returns the job239 when job has a coverage_fuzzing artifact240 returns the job241 when job has a browser_performance artifact242 returns the job243 when job has a load_performance artifact244 returns the job245 when job has a api_fuzzing artifact246 returns the job247 when job has a cluster_image_scanning artifact248 returns the job249 when job has a cyclonedx artifact250 returns the job251 when job has a requirements_v2 artifact252 returns the job253 when job has a annotations artifact254 returns the job255 .with_live_trace256 when build has live trace257 selects the build258 when build does not have live trace259 does not select the build260 .with_stale_live_trace261 when build has a stale live trace262 selects the build263 when build does not have a stale live trace264 does not select the build265 .license_management_jobs266 returns license_scanning jobs267 returns license_management jobs268 doesnt return filtered out jobs269 .finished_before270 when build has finished one day ago271 selects the build272 when build has finished 30 minutes ago273 returns an empty array274 when build is still running275 returns an empty array276 .with_exposed_artifacts277 when some jobs have exposed artifacs and some not278 selects only the jobs with exposed artifacts279 when job does not expose artifacts280 returns an empty array281 .with_artifacts282 returns artifacts matching the given scope283 when there are multiple builds containing artifacts284 does not execute a query for selecting job artifact one by one285 .with_needs286 when passing build name287 is expected to contain exactly #<Ci::Build status: "pending", finished_at: nil, created_at: "2023-10-20 08:50:29.000000000 +0000", u..."stage", id: 180, stage_id: 1, partition_id: 100, auto_canceled_by_partition_id: 100, tag_list: nil>288 when not passing any build name289 is expected to contain exactly #<Ci::Build status: "pending", finished_at: nil, created_at: "2023-10-20 08:50:29.000000000 +0000", u..."stage", id: 182, stage_id: 1, 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..."stage", id: 183, stage_id: 1, partition_id: 100, auto_canceled_by_partition_id: 100, tag_list: nil>290 when not matching build name291 is expected to be empty292 .without_needs293 when no build_need is created294 is expected to contain exactly #<Ci::Build status: "pending", finished_at: nil, created_at: "2023-10-20 08:50:29.000000000 +0000", u...: "stage", id: 1, stage_id: 1, partition_id: 100, auto_canceled_by_partition_id: 100, tag_list: nil>295 when a build_need is created296 is expected to be empty297 #stick_build_if_status_changed298 sticks the build if the status changed299 #enqueue300 build has unmet prerequisites301 transitions to preparing302 does not push build to the queue303 build has no prerequisites304 transitions to pending305 pushes build to a queue306 when build status transition fails307 does not push build to a queue308 when there is a queuing entry already present309 does not raise an error310 when both failure scenario happen at the same time311 raises stale object error exception312 #enqueue_preparing313 build completed prerequisites314 transitions to pending315 build did not complete prerequisites316 remains in preparing317 #actionize318 when build is a created319 makes build a manual action320 when build is not created321 does not change build status322 #run323 when build has been just created324 creates queuing entry and then removes it325 when build status transition fails326 does not remove build from a queue327 when build has been picked by a shared runner328 creates runtime metadata entry329 #drop330 when has a runtime tracking entry331 removes runtime tracking entry332 when a failure reason is provided333 when a failure reason is a symbol334 correctly sets a failure reason335 when a failure reason is an object336 correctly sets a failure reason337 #schedulable?338 when build is schedulable339 is expected to be truthy340 when build is not schedulable341 is expected to be falsy342 #schedule343 transits to scheduled344 updates scheduled_at column345 schedules BuildScheduleWorker at the right time346 #unschedule347 when build is scheduled348 cleans scheduled_at column349 transits to manual350 when build is not scheduled351 does not transit status352 #options_scheduled_at353 when start_in is 1 day354 returns date after 1 day355 when start_in is 1 week356 returns date after 1 week357 #enqueue_scheduled358 when build is scheduled and the right time has not come yet359 does not transits the status360 when build is scheduled and the right time has already come361 cleans scheduled_at column362 transits to pending363 build has unmet prerequisites364 transits to preparing365 #any_runners_online?366 caches the result in Redis367 when no runners368 is expected to be falsey369 when there is a runner370 is expected to be truthy371 that is inactive372 is expected to be falsey373 that is not online374 is expected to be falsey375 that cannot handle build376 is expected to be falsey377 #any_runners_available?378 caches the result in Redis379 when no runners380 is expected to be falsey381 when there are runners382 is expected to be truthy383 #artifacts?384 when new artifacts are used385 artifacts archive does not exist386 is expected to be falsy387 artifacts archive exists388 is expected to be truthy389 is expired390 is expected to be falsy391 #locked_artifacts?392 when pipeline is artifacts_locked393 artifacts archive does not exist394 is expected to be falsy395 artifacts archive exists396 is expected to be truthy397 when pipeline is unlocked398 artifacts archive does not exist399 is expected to be falsy400 artifacts archive exists401 is expected to be falsy402 #available_artifacts?403 when artifacts are not expired404 when artifacts exist405 is expected to be truthy406 when artifacts do not exist407 is expected to be falsey408 when artifacts are expired409 when artifacts are not locked410 is expected to be falsey411 when artifacts are locked412 when artifacts exist413 is expected to be truthy414 when artifacts do not exist415 is expected to be falsey416 #browsable_artifacts?417 artifacts metadata does exists418 is expected to be truthy419 #artifacts_public?420 artifacts with defaults421 is expected to be truthy422 non public artifacts423 is expected to be falsey424 #artifacts_expired?425 is expired426 is expected to be truthy427 is not expired428 is expected to be falsey429 #artifacts_metadata?430 artifacts metadata does not exist431 is expected to be falsy432 artifacts archive is a zip file and metadata exists433 is expected to be truthy434 #artifacts_expire_in435 is expected to be nil436 when artifacts_expire_at is specified437 is expected to be within 5 of 604799.99945839438 #artifacts_expire_in=439 when assigning valid duration440 when assigning invalid duration441 when resetting value442 when setting to 0443 #commit444 returns commit pipeline has been created for445 #cache446 when build has cache447 when build has multiple caches448 is expected to match [(a hash including {:key => "key-1-non_protected"}), (a hash including {:key => "key2-1-non_protected"})]449 when pipeline is on a protected ref450 without the `unprotect` option451 is expected to all a hash including {:key => (a string matching /-protected$/)}452 and the caches have fallback keys453 is expected to all a hash including {:key => (a string matching /-protected$/), :fallback_keys => #<RSpec::Mocks::Argume...otected$/, @expected_captures=nil, @actual="key5-1-protected", @matcher_name=:a_string_matching>>]>}454 and the cache has the `unprotect` option455 is expected to all a hash including {:key => (a string matching /-non_protected$/)}456 and the caches have fallback keys457 is expected to all a hash including {:key => (a string matching /-non_protected$/), :fallback_keys => #<RSpec::Mocks::Ar...ted$/, @expected_captures=nil, @actual="key5-1-non_protected", @matcher_name=:a_string_matching>>]>}458 when pipeline is not on a protected ref459 is expected to all a hash including {:key => (a string matching /-non_protected$/)}460 and the caches have fallback keys461 is expected to all a hash including {:key => (a string matching /-non_protected$/), :fallback_keys => #<RSpec::Mocks::Ar...ted$/, @expected_captures=nil, @actual="key5-1-non_protected", @matcher_name=:a_string_matching>>]>}462 when separated caches are disabled463 running on protected ref464 is expected to have no type suffix465 and the caches have fallback keys466 is expected to match [(a hash including {:key => "key-1", :fallback_keys => ["key3-1", "key4-1"]}), (a hash including {:key => "key2-1", :fallback_keys => ["key5-1", "key6-1"]})]467 running on not protected ref468 is expected to have no type suffix469 and the caches have fallback keys470 is expected to match [(a hash including {:key => "key-1", :fallback_keys => ["key3-1", "key4-1"]}), (a hash including {:key => "key2-1", :fallback_keys => ["key5-1", "key6-1"]})]471 when project has jobs_cache_index472 is expected to be a kind of Array and all include {:key => (a string matching /^key-1-(?>protected|non_protected)/)}473 and the cache have fallback keys474 is expected to be a kind of Array and all include {:key => (a string matching /^key-1-(?>protected|non_protected)/), :fallback_keys => #<RSpec:...ted)/, @expected_captures=nil, @actual="key1-1-non_protected", @matcher_name=:a_string_matching>>]>}475 when project does not have jobs_cache_index476 is expected to eq [{:fallback_keys=>[], :key=>"key-non_protected", :paths=>["public"], :policy=>"pull-push"}]477 and the cache have fallback keys478 is expected to eq [{:fallback_keys=>["key1-non_protected", "key2-non_protected"], :key=>"key-non_protected", :paths=>["public"], :policy=>"pull-push"}]479 when build does not have cache480 is expected to be empty481 #fallback_cache_keys_defined?482 returns false when fallback keys are not defined483 with fallbacks keys484 returns true when fallback keys are defined485 #triggered_by?486 when user is owner487 is expected to be truthy488 when user is not owner489 is expected to be falsy490 #detailed_status491 returns a detailed status492 #update_coverage493 regarding coverage_regex's value,494 saves the correct extracted coverage value495 #trace496 is expected to be a kind of Gitlab::Ci::Trace497 #has_trace?498 expect to call exist? method499 #has_live_trace?500 is expected to be truthy501 when build does not have live trace502 is expected to be falsy503 #has_archived_trace?504 is expected to be truthy505 when build does not have archived trace506 is expected to be falsy507 #has_job_artifacts?508 when build has a job artifact509 is expected to be truthy510 #has_test_reports?511 when build has a test report512 is expected to be truthy513 when build does not have a test report514 is expected to be falsey515 #hide_secrets516 hide runners token517 is expected to match /^new x+ data$/518 increments trace mutation metric519 hide build token520 is expected to match /^new x+ data$/521 increments trace mutation metric522 when build does not include secrets523 does not mutate trace524 does not increment trace mutation metric525 state transition metrics526 state: :success!, report_count: 1, trait: :sast527 when transitioning to success!528 increments build_completed_report_type metric529 state: :cancel!, report_count: 1, trait: :sast530 when transitioning to cancel!531 increments build_completed_report_type metric532 state: :drop!, report_count: 2, trait: :multiple_report_artifacts533 when transitioning to drop!534 increments build_completed_report_type metric535 state: :success!, report_count: 0, trait: :allowed_to_fail536 when transitioning to success!537 increments build_completed_report_type metric538 state: :skip!, report_count: 0, trait: :pending539 when transitioning to skip!540 increments build_completed_report_type metric541 erasable build542 build is not erasable543 #erasable?544 is expected to eq false545 build is erasable546 new artifacts547 #erasable?548 is expected to be truthy549 #erased?550 job has not been erased551 is expected to be falsey552 job has been erased553 is expected to be truthy554 flags555 #cancelable?556 when build is cancelable557 when build is pending558 is expected to be cancelable559 when build is running560 is expected to be cancelable561 when build is created562 is expected to be cancelable563 when build is waiting for resource564 is expected to be cancelable565 when build is not cancelable566 when build is successful567 is expected not to be cancelable568 when build is failed569 is expected not to be cancelable570 #action?571 when is set to manual572 is expected to be truthy573 when is set to delayed574 is expected to be truthy575 when set to something else576 is expected to be falsey577 #runner_manager578 is expected to eq #<Ci::RunnerManager id: 1, runner_id: 8, executor_type: nil, created_at: "2023-10-20 08:30:22.6908104...ion: nil, platform: nil, architecture: nil, ip_address: nil, config: {}, system_xid: "r_3151abe0f7">579 #tag_list580 when tags are preloaded581 does not trigger queries582 when tags are not preloaded583 is expected to eq ["tag"]584 #save_tags585 saves tags586 strips tags587 with BulkInsertableTags.with_bulk_insert_tags588 does not save_tags589 #has_tags?590 when build has tags591 is expected to have tags592 when build does not have tags593 is expected not to have tags594 build auto retry feature595 with deployment job596 creates a deployment when a build is dropped597 #retries_count598 when build has been retried several times599 reports a correct retry count value600 when build has not been retried601 returns zero602 .keep_artifacts!603 resets expire_at604 does not reset expire_at for other builds605 when having artifacts files606 resets dependent objects607 does not reset dependent object for other builds608 #keep_artifacts!609 to reset expire_at610 when having artifacts files611 to reset dependent objects612 #auto_retry_expected?613 when build is failed and auto retry is configured614 expects auto-retry to happen615 when build failed by auto retry is not configured616 does not expect auto-retry to happen617 #artifact_for_type618 is expected to eq #<Ci::JobArtifact project_id: 1, file_type: "archive", size: 107464, created_at: "2023-10-20 08:30:26...3, job_id: 281, locked: "unknown", partition_id: 100, accessibility: "public", file_final_path: nil>619 #merge_request620 on a branch pipeline621 with no merge request622 is expected to be nil623 with an open merge request from the same ref name624 without a merge request diff containing the pipeline commit625 is expected to be nil626 with a merge request diff containing the pipeline commit627 is expected to eq #<MergeRequest id:3 group1/project-1!2>628 with multiple open merge requests629 returns the first merge request630 on a detached merged request pipeline631 is expected to eq #<MergeRequest id:1 group1/project-1!1>632 on a legacy detached merged request pipeline633 is expected to eq #<MergeRequest id:1 group1/project-1!1>634 on a pipeline for merged results635 is expected to eq #<MergeRequest id:1 group1/project-1!1>636 #options637 contains options638 allows to access with symbolized keys639 rejects access with string keys640 persist data in build metadata641 does not persist data in build642 when options include artifacts:expose_as643 saves the presence of expose_as into build metadata644 #other_scheduled_actions645 when other build's status is success646 returns other actions647 when other build's status is failed648 returns other actions649 when other build's status is running650 does not return other actions651 when other build's status is scheduled652 does not return other actions653 #play654 enqueues the build655 #playable?656 when build is a manual action657 when build has been skipped658 is expected not to be playable659 when build has been canceled660 is expected to be playable661 when build is successful662 is expected to be playable663 when build has failed664 is expected to be playable665 when build is a manual untriggered action666 is expected to be playable667 when build is a manual and degenerated668 is expected not to be playable669 when build is scheduled670 is expected to be playable671 when build is not a manual action672 is expected not to be playable673 project settings674 #allow_git_fetch675 return project allow_git_fetch configuration676 #project677 is expected to eq #<Project id:1 group1/project-1>>678 #project_id679 is expected to eq 1680 #project_name681 is expected to eq "Project-1 Name"682 #ref_slug683 ref: "master", slug: "master"684 transforms ref to slug685 ref: "1-foo", slug: "1-foo"686 transforms ref to slug687 ref: "fix/1-foo", slug: "fix-1-foo"688 transforms ref to slug689 ref: "fix-1-foo", slug: "fix-1-foo"690 transforms ref to slug691 ref: "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", slug: "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"692 transforms ref to slug693 ref: "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", slug: "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"694 transforms ref to slug695 ref: "FOO", slug: "foo"696 transforms ref to slug697 ref: "-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-", slug: "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"698 transforms ref to slug699 ref: "-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-", slug: "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"700 transforms ref to slug701 ref: "-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-", slug: "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"702 transforms ref to slug703 ref: "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ", slug: "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"704 transforms ref to slug705 #repo_url706 when token is set707 is expected to be a kind of String708 is expected to end with ".git"709 is expected to start with "http://"710 is expected to include "64_myCszaQBy8xE5yaWjG9k"711 is expected to include "gitlab-ci-token"712 is expected to include "localhost/group1/project-1"713 when token is empty714 is expected to be nil715 #stuck?716 when commit_status.status is pending717 is expected to be truthy718 and there is a project runner719 is expected to be falsey720 when commit_status.status is success721 is expected to be falsey722 when commit_status.status is failed723 is expected to be falsey724 when commit_status.status is canceled725 is expected to be falsey726 when commit_status.status is running727 is expected to be falsey728 #has_expired_locked_archive_artifacts?729 when build does not have artifacts730 is expected to eq nil731 when build has artifacts732 when artifacts are unlocked733 is expected to eq false734 when artifacts are locked735 when artifacts do not expire736 is expected to be falsey737 when artifacts expire in the future738 is expected to eq false739 when artifacts expired in the past740 is expected to eq true741 #has_expiring_archive_artifacts?742 when artifacts have expiration date set743 and job artifacts archive record exists744 has expiring artifacts745 and job artifacts archive record does not exist746 does not have expiring artifacts747 when artifacts do not have expiration date set748 does not have expiring artifacts749 #variables750 returns variables751 is expected to be an instance of Gitlab::Ci::Variables::Collection752 is expected to eq [{:key=>"CI_PIPELINE_ID", :masked=>false, :public=>true, :value=>"1"}, {:key=>"CI_PIPELINE_URL", :mas...y=>"CI_COMMIT_AUTHOR", :masked=>false, :public=>true, :value=>"Job van der Voort <job@gitlab.com>"}]753 excludes variables that require an environment or user754 when CI_JOB_JWT generation fails755 CI_JOB_JWT is not included756 CI_JOB_JWT is not included757 variables ordering758 when variables hierarchy is stubbed759 returns variables in order depending on resource hierarchy760 when build has environment and user-provided variables761 matches explicit variables ordering762 CI_ENVIRONMENT_ACTION763 behaves like defaults value764 value matches start765 when options is set766 when options is empty767 behaves like defaults value768 value matches start769 when options is nil770 behaves like defaults value771 value matches start772 when options environment is specified773 behaves like defaults value774 value matches start775 when options environment action specified776 matches the specified action777 when the build has ID tokens778 includes the tokens and excludes the predefined JWT variables779 when build has user780 is expected to include {:key => "GITLAB_USER_NAME", :value => "Sidney Jones1", :public => true, :masked => false}781 when build belongs to a pipeline for merge request782 returns values based on source ref783 when build has an environment784 when no URL was set785 does not have CI_ENVIRONMENT_URL786 behaves like containing environment variables787 is expected to include {:key => "CI_ENVIRONMENT_TIER", :value => "production", :public => true, :masked => false}788 when environment is created dynamically789 behaves like containing environment variables790 is expected to include {:key => "CI_ENVIRONMENT_URL", :value => "http://staging.example.com/$CI_JOB_NAME", :public => true, :masked => false}791 when an URL was set792 when the URL was set from the job793 behaves like containing environment variables794 is expected to include {:key => "CI_ENVIRONMENT_URL", :value => "http://host/test", :public => true, :masked => false}795 when variables are used in the URL, it does not expand796 puts $CI_ENVIRONMENT_URL in the last so all other variables are available to be used when runners are trying to expand it797 behaves like containing environment variables798 is expected to include {:key => "CI_ENVIRONMENT_URL", :value => "http://$CI_PROJECT_NAME-$CI_ENVIRONMENT_SLUG", :public => true, :masked => false}799 when the URL was not set from the job, but environment800 behaves like containing environment variables801 is expected to include {:key => "CI_ENVIRONMENT_URL", :value => "http://host/test", :public => true, :masked => false}802 when environment_tier is updated in options803 uses tier from options804 when project has an environment specific variable805 behaves like containing environment variables806 is expected to include {:key => "CI_ENVIRONMENT_URL", :value => "http://prd.example.com/$CI_JOB_NAME", :public => true, :masked => false}807 when environment scope does not match build environment808 is expected not to include {:key => "MY_STAGING_ONLY_VARIABLE", :value => "environment_specific_variable", :public => false, :masked => false}809 when environment scope matches build environment810 is expected to include {:key => "MY_STAGING_ONLY_VARIABLE", :value => "environment_specific_variable", :public => false, :masked => false}811 when build started manually812 is expected to include {:key => "CI_JOB_MANUAL", :value => "true", :public => true, :masked => false}813 when job variable is defined814 is expected to include {:key => "first", :value => "first", :public => false, :masked => false}815 when build is for branch816 is expected to include {:key => "CI_COMMIT_BRANCH", :value => "master", :public => true, :masked => false}817 when build is for tag818 is expected to include {:key => "CI_COMMIT_TAG_MESSAGE", :value => "Release", :public => true, :masked => false}819 when CI variable is defined820 is expected to include {:key => "SECRET_KEY", :value => "secret_value", :public => false, :masked => false}821 when protected variable is defined822 when the branch is protected823 is expected to include {:key => "PROTECTED_KEY", :value => "protected_value", :public => false, :masked => false}824 when the tag is protected825 is expected to include {:key => "PROTECTED_KEY", :value => "protected_value", :public => false, :masked => false}826 when the ref is not protected827 is expected not to include {:key => "PROTECTED_KEY", :value => "protected_value", :public => false, :masked => false}828 when group CI variable is defined829 is expected to include {:key => "SECRET_KEY", :value => "secret_value", :public => false, :masked => false}830 when group protected variable is defined831 when the branch is protected832 is expected to include {:key => "PROTECTED_KEY", :value => "protected_value", :public => false, :masked => false}833 when the tag is protected834 is expected to include {:key => "PROTECTED_KEY", :value => "protected_value", :public => false, :masked => false}835 when the ref is not protected836 is expected not to include {:key => "PROTECTED_KEY", :value => "protected_value", :public => false, :masked => false}837 when build is for triggers838 is expected to include {:key => "CI_PIPELINE_TRIGGERED", :value => "true", :public => true, :masked => false}839 when pipeline has a variable840 is expected to include {:key => "VARIABLE_1", :value => "VARIABLE_VALUE", :public => false, :masked => false}841 when a job was triggered by a pipeline schedule842 is expected to include {:key => "SCHEDULE_VARIABLE_KEY", :value => "VARIABLE_VALUE", :public => false, :masked => false}843 when container registry is enabled844 and is disabled for project845 is expected to include {:key => "CI_REGISTRY", :value => "registry.example.com", :public => true, :masked => false}846 is expected not to include {:key => "CI_REGISTRY_IMAGE", :value => "registry.example.com/group1/project-2", :public => true, :masked => false}847 and is enabled for project848 is expected to include {:key => "CI_REGISTRY", :value => "registry.example.com", :public => true, :masked => false}849 is expected to include {:key => "CI_REGISTRY_IMAGE", :value => "registry.example.com/group1/project-2", :public => true, :masked => false}850 and is private for project851 is expected to include {:key => "CI_REGISTRY", :value => "registry.example.com", :public => true, :masked => false}852 is expected to include {:key => "CI_REGISTRY_IMAGE", :value => "registry.example.com/group1/project-2", :public => true, :masked => false}853 when runner is assigned to build854 is expected to include {:key => "CI_RUNNER_ID", :value => "10", :public => true, :masked => false}855 is expected to include {:key => "CI_RUNNER_DESCRIPTION", :value => "description", :public => true, :masked => false}856 is expected to include {:key => "CI_RUNNER_TAGS", :value => "docker, linux", :public => true, :masked => false}857 when build is for a deployment858 is expected to include {:key => "KUBERNETES_TOKEN", :value => "TOKEN", :public => false, :masked => false}859 when project has default CI config path860 is expected to include {:key => "CI_CONFIG_PATH", :value => ".gitlab-ci.yml", :public => true, :masked => false}861 when project has custom CI config path862 is expected to include {:key => "CI_CONFIG_PATH", :value => "custom", :public => true, :masked => false}863 when pipeline variable overrides build variable864 overrides YAML variable using a pipeline variable865 when build is parallelized866 when parallel is a number867 behaves like parallelized jobs config868 includes CI_NODE_INDEX869 includes correct CI_NODE_TOTAL870 when parallel is hash with the total key871 behaves like parallelized jobs config872 includes CI_NODE_INDEX873 includes correct CI_NODE_TOTAL874 when parallel is nil875 behaves like parallelized jobs config876 includes CI_NODE_INDEX877 includes correct CI_NODE_TOTAL878 when build has not been persisted yet879 returns static predefined variables880 for deploy tokens881 when gitlab-deploy-token exists for project882 includes deploy token variables883 when gitlab-deploy-token does not exist for project884 does not include deploy token variables885 when gitlab-deploy-token exists for group886 includes deploy token variables887 for harbor integration888 when harbor_integration exists889 includes harbor variables890 when harbor_integration does not exist891 does not include harbor variables892 for the apple_app_store integration893 when an Apple App Store integration exists894 when app_store_protected_refs is true895 when a build is protected896 is expected to include {:key => "APP_STORE_CONNECT_API_KEY_IS_KEY_CONTENT_BASE64", :value => "true", :masked => false, :public => false}897 when a build is not protected898 is expected to be nil899 when app_store_protected_refs is false900 when a build is protected901 is expected to include {:key => "APP_STORE_CONNECT_API_KEY_IS_KEY_CONTENT_BASE64", :value => "true", :masked => false, :public => false}902 when a build is not protected903 is expected to include {:key => "APP_STORE_CONNECT_API_KEY_IS_KEY_CONTENT_BASE64", :value => "true", :masked => false, :public => false}904 when an Apple App Store integration does not exist905 when a build is protected906 is expected to be nil907 when a build is not protected908 is expected to be nil909 for the google_play integration910 when the google_play integration exists911 when google_play_protected_refs is true912 when a build is protected913 is expected to include {:key => "SUPPLY_PACKAGE_NAME", :value => "com.gitlab.foo.bar", :masked => false, :public => false}914 when a build is not protected915 is expected to be nil916 when google_play_protected_refs is false917 when a build is protected918 is expected to include {:key => "SUPPLY_PACKAGE_NAME", :value => "com.gitlab.foo.bar", :masked => false, :public => false}919 when a build is not protected920 is expected to include {:key => "SUPPLY_PACKAGE_NAME", :value => "com.gitlab.foo.bar", :masked => false, :public => false}921 when the google_play integration does not exist922 when a build is protected923 is expected to be nil924 when a build is not protected925 is expected to be nil926 when build has dependency which has dotenv variable927 is expected to include {:key => "VARIABLE_1", :value => "VARIABLE_VALUE", :public => false, :masked => false}928 when ID tokens are defined on the build929 includes the ID token variables930 when a NoSigningKeyError is raised931 does not include the ID token variables932 when a RSAError is raised933 does not include the ID token variables934 when ID tokens are defined with variables935 includes the ID token variables with expanded aud values936 when ID tokens are defined with variables of an environment937 includes the ID token variables with expanded aud values938 #scoped_variables939 records a prometheus metric940 delegates to the variable builders941 behaves like calculates scoped_variables942 when build has not been persisted yet943 does not persist the build944 returns static predefined variables945 does not return prohibited variables946 with dependency variables947 inherits dependent variables948 #simple_variables_without_dependencies949 does not load dependencies950 #any_unmet_prerequisites?951 build has prerequisites952 is expected to be truthy953 build does not have prerequisites954 is expected to be falsey955 #yaml_variables956 persist data in build metadata957 does not persist data in build958 behaves like having consistent representation959 allows to access using symbols960 #dependency_variables961 when using dependencies962 inherits only dependent variables963 when using needs964 inherits only needs with artifacts variables965 state transition: any => [:preparing]966 queues BuildPrepareWorker967 state transition: any => [:pending]968 queues BuildQueueWorker969 executes hooks970 assigns the token971 state transition: pending: :running972 for pipeline ref existence973 ensures pipeline ref creation974 ensures that it is not run in database transaction975 when runner timeout overrides project timeout976 behaves like saves data on transition977 saves timeout978 saves timeout_source979 when Ci::BuildMetadata#update_timeout_state fails update980 doesn't save timeout981 doesn't save timeout_source982 when runner timeout doesn't override project timeout983 behaves like saves data on transition984 saves timeout985 saves timeout_source986 when Ci::BuildMetadata#update_timeout_state fails update987 doesn't save timeout988 doesn't save timeout_source989 #has_valid_build_dependencies?990 when "dependencies" keyword is not defined991 is expected to have valid build dependencies992 when "dependencies" keyword is empty993 is expected to have valid build dependencies994 when "dependencies" keyword is specified995 behaves like validation is active996 when depended job has not been completed yet997 is expected to have valid build dependencies998 when artifacts of depended job has been expired999 when pipeline is not locked1000 is expected not to have valid build dependencies1001 when pipeline is locked1002 is expected to have valid build dependencies1003 when artifacts of depended job has been erased1004 is expected not to have valid build dependencies1005 state transition when build fails1006 when build is configured to be retried1007 retries build and assigns the same user to it1008 does not try to create a todo1009 when retry service raises Gitlab::Access::AccessDeniedError exception1010 handles raised exception1011 logs the error1012 fails the job1013 when build is not configured to be retried1014 does not retry build1015 does not count retries when not necessary1016 creates a todo async1017 when associated deployment failed to update its status1018 can drop the build1019 .matches_tag_ids1020 when have different tags1021 does not match a build1022 when have a subset of tags1023 does match a build1024 when build does not have tags1025 does match a build1026 when does not have a subset of tags1027 does not match a build1028 .matches_tags1029 when does have tags1030 does match a build1031 when does not have tags1032 does not match a build1033 #pages_generator?1034 name: "foo", enabled: false, result: false1035 is expected to eq false1036 name: "pages", enabled: false, result: false1037 is expected to eq false1038 name: "pages:preview", enabled: true, result: false1039 is expected to eq false1040 name: "pages", enabled: true, result: true1041 is expected to eq true1042 pages deployments1043 when pages are enabled1044 and job succeeds1045 calls pages worker1046 and job fails1047 does not call pages worker1048 when pages are disabled1049 and job succeeds1050 does not call pages worker1051 #has_terminal?1052 returns true if the build is running and it has a runner_session_url1053 returns false1054 when runner_session_url is empty1055 unless the build is running1056 is expected to be falsey1057 #collect_test_reports!1058 is expected to eq 01059 when build has a test report1060 when there is a JUnit test report from rspec test suite1061 parses blobs and add the results to the test suite1062 when there is a JUnit test report from java ant test suite1063 parses blobs and add the results to the test suite1064 when there is a corrupted JUnit test report1065 returns no test data and includes a suite_error message1066 #collect_accessibility_reports!1067 is expected to eq {}1068 when build has an accessibility report1069 when there is an accessibility report with errors1070 parses blobs and add the results to the accessibility report1071 when there is an accessibility report without errors1072 parses blobs and add the results to the accessibility report1073 when there is an accessibility report with an invalid url1074 parses blobs and add the results to the accessibility report1075 #collect_codequality_reports!1076 is expected to eq {}1077 when build has a codequality report1078 when there is a codequality report1079 parses blobs and add the results to the codequality report1080 when there is an codequality report without errors1081 parses blobs and add the results to the codequality report1082 #collect_terraform_reports!1083 returns an empty hash1084 when build has a terraform report1085 when there is a valid tfplan.json1086 parses blobs and add the results to the terraform report1087 when there is an invalid tfplan.json1088 adds invalid plan report1089 #each_report1090 yields job artifact blob that matches the type1091 #report_artifacts1092 when the build has reports1093 returns the artifacts with reports1094 #artifacts_metadata_entry1095 when using local storage1096 for existing file1097 does exist1098 for non-existing file1099 does not exist1100 when using remote storage1101 for existing file1102 does exist1103 for non-existing file1104 does not exist1105 #publishes_artifacts_reports?1106 when artifacts reports are defined1107 is expected to be truthy1108 when artifacts reports missing defined1109 is expected to be falsey1110 when options are missing1111 is expected to be falsey1112 #runner_required_feature_names1113 when artifacts reports are defined1114 is expected to include :upload_multiple_artifacts1115 when artifacts exclude is defined1116 is expected to include :artifacts_exclude1117 #supported_runner?1118 when `upload_multiple_artifacts` feature is required by build1119 when runner provides given feature1120 is expected to be truthy1121 when runner does not provide given feature1122 is expected to be falsey1123 when `refspecs` feature is required by build1124 when runner provides given feature1125 is expected to be truthy1126 when runner does not provide given feature1127 is expected to be falsey1128 when `multi_build_steps` feature is required by build1129 when runner provides given feature1130 is expected to be truthy1131 when runner does not provide given feature1132 is expected to be falsey1133 when `return_exit_code` feature is required by build1134 when runner provides given feature1135 is expected to be truthy1136 when runner does not provide given feature1137 is expected to be falsey1138 when the runner does not provide all of the required features1139 requires `upload_multiple_artifacts` too1140 #degenerated?1141 when build is degenerated1142 is expected to be degenerated1143 when build is valid1144 is expected not to be degenerated1145 and becomes degenerated1146 is expected to be degenerated1147 degenerate!1148 drops metadata1149 #archived?1150 when build is degenerated1151 is expected to be archived1152 for old build1153 when archive_builds_in is set1154 is expected to be archived1155 when archive_builds_in is not set1156 is expected not to be archived1157 #read_metadata_attribute1158 when build and metadata options is set1159 prefers build options1160 when only metadata options is set1161 returns metadata options1162 when none is set1163 returns default value1164 #write_metadata_attribute1165 when data in build is already set1166 does set metadata options1167 does reset build options1168 #invalid_dependencies1169 when pipeline is locked1170 returns invalid dependencies when expired1171 when pipeline is not locked1172 returns no invalid dependencies when expired1173 #execute_hooks1174 with project hooks1175 calls project.execute_hooks(build_data, :job_hooks)1176 with blocked users1177 does not call project.execute_hooks1178 without project hooks1179 does not call project.execute_hooks1180 with project services1181 executes services1182 without relevant project services1183 does not execute services1184 #environment_auto_stop_in1185 when build option has environment auto_stop_in1186 is expected to eq "1 day"1187 when build option does not have environment auto_stop_in1188 is expected to be nil1189 #degradation_threshold1190 when threshold variable is defined1191 is expected to eq 51192 when threshold variable is not defined1193 is expected to be nil1194 #run_on_status_commit1195 runs provided hook after status commit1196 does not run hooks when status has not changed1197 #debug_mode?1198 when CI_DEBUG_TRACE=true is in variables1199 reflects instance variables1200 reflects group variables1201 reflects pipeline variables1202 reflects project variables1203 reflects job variables1204 when in yaml variables1205 reflects instance variables1206 reflects group variables1207 reflects pipeline variables1208 reflects project variables1209 reflects job variables1210 when in yaml variables1211 reflects instance variables1212 reflects group variables1213 reflects pipeline variables1214 reflects project variables1215 reflects job variables1216 when in yaml variables1217 when CI_DEBUG_TRACE is not in variables1218 is expected to eq false1219 when CI_DEBUG_SERVICES=true is in variables1220 reflects instance variables1221 reflects group variables1222 reflects pipeline variables1223 reflects project variables1224 reflects job variables1225 when in yaml variables1226 reflects instance variables1227 reflects group variables1228 reflects pipeline variables1229 reflects project variables1230 reflects job variables1231 when in yaml variables1232 reflects instance variables1233 reflects group variables1234 reflects pipeline variables1235 reflects project variables1236 reflects job variables1237 when in yaml variables1238 when CI_DEBUG_SERVICES is not in variables1239 is expected to eq false1240 when metadata has debug_trace_enabled true1241 is expected to eq true1242 when metadata has debug_trace_enabled false1243 is expected to eq false1244 #drop_with_exit_code!1245 when exit_codes are not defined1246 behaves like drops the build without changing allow_failure1247 does not change allow_failure1248 drops the build1249 when allow_failure_criteria is nil1250 behaves like drops the build without changing allow_failure1251 does not change allow_failure1252 drops the build1253 when exit_codes is nil1254 behaves like drops the build without changing allow_failure1255 does not change allow_failure1256 drops the build1257 when exit_codes do not match1258 behaves like drops the build without changing allow_failure1259 does not change allow_failure1260 drops the build1261 with matching exit codes1262 changes allow_failure1263 drops the build1264 when exit_code is nil1265 behaves like drops the build without changing allow_failure1266 does not change allow_failure1267 drops the build1268 when build is configured to be retried1269 when there is an MR attached to the pipeline and a failed job todo for that MR1270 resolves the todo for the old failed build1271 #exit_codes_defined?1272 without allow_failure_criteria1273 is expected to be falsey1274 when exit_codes is nil1275 is expected to be falsey1276 when exit_codes is an empty array1277 is expected to be falsey1278 when exit_codes are defined1279 is expected to be truthy1280 .build_matchers1281 when the pipeline is empty1282 does not throw errors1283 when the pipeline has builds1284 is expected to eq 21285 groups build ids1286 is expected to contain exactly [] and ["tag1", "tag2"]1287 is expected to all be falsey1288 when the builds are protected1289 is expected to all be protected1290 #build_matcher1291 is expected to eq [1016]1292 is expected to contain exactly "tag1" and "tag2"1293 is expected to eq false1294 is expected to eq #<Project id:1 group1/project-1>>1295 #shared_runner_build?1296 when build does not have a runner assigned1297 is not a shared runner build1298 when build has a project runner assigned1299 is not a shared runner build1300 when build has an instance runner assigned1301 is a shared runner build1302 .with_project_and_metadata1303 does not join across databases1304 .without_coverage1305 returns builds without coverage values1306 .with_coverage_regex1307 returns builds with coverage regex values1308 #ensure_trace_metadata!1309 delegates to Ci::BuildTraceMetadata1310 #doom!1311 updates status and failure_reason1312 logs a message1313 with deployment1314 updates the deployment status1315 with queued builds1316 drops associated pending build1317 with running builds1318 drops associated runtime metadata1319 #runtime_runner_features1320 cannot cancel gracefully1321 can cancel gracefully1322 behaves like it has loose foreign keys1323 has at least one loose foreign key definition1324 has the deletion trigger present1325 records record deletions1326 cleans up record deletions1327 behaves like cleanup by a loose foreign key1328 cleans up (delete or nullify) the model1329 #clone1330 when given new job variables1331 when the cloned build has an action1332 applies the new job variables1333 when the cloned build does not have an action1334 applies the old job variables1335 when not given new job variables1336 applies the old job variables1337 #test_suite_name1338 uses the group name for test suite name1339 when build is part of parallel build1340 uses the group name for test suite name1341 when build is part of matrix build1342 uses the job name for the test suite1343 #runtime_hooks1344 returns an array of hook objects1345 partitioning1346 assigns partition_id to job variables successfully1347 assigning token1348 includes partition_id as a token prefix1349 #remove_token!1350 removes the token1351 metadata partitioning1352 creates the metadata record and assigns its partition1353 secrets management id_tokens usage data1354 when ID tokens are defined1355 on create1356 tracks RedisHLL event with user_id1357 tracks Snowplow event with RedisHLL context1358 on update1359 does not track RedisHLL event1360 does not track Snowplow event1361 when ID tokens are not defined1362 on create1363 does not track RedisHLL event1364 does not track Snowplow event1365 job artifact associations1366 #job_artifacts_archive1367 when job has an artifact of type archive1368 is expected to eq #<Ci::JobArtifact project_id: 1, file_type: "archive", size: nil, created_at: "2023-10-20 08:31:46.72...168, job_id: 1, locked: "unknown", partition_id: 100, accessibility: "public", file_final_path: nil>1369 when job has no artifact of type archive1370 is expected to be nil1371 #job_artifacts_metadata1372 when job has an artifact of type metadata1373 is expected to eq #<Ci::JobArtifact project_id: 1, file_type: "metadata", size: nil, created_at: "2023-10-20 08:31:46.8...169, job_id: 1, locked: "unknown", partition_id: 100, accessibility: "public", file_final_path: nil>1374 when job has no artifact of type metadata1375 is expected to be nil1376 #job_artifacts_trace1377 when job has an artifact of type trace1378 is expected to eq #<Ci::JobArtifact project_id: 1, file_type: "trace", size: nil, created_at: "2023-10-20 08:31:46.9945...170, job_id: 1, locked: "unknown", partition_id: 100, accessibility: "public", file_final_path: nil>1379 when job has no artifact of type trace1380 is expected to be nil1381 #job_artifacts_junit1382 when job has an artifact of type junit1383 is expected to eq #<Ci::JobArtifact project_id: 1, file_type: "junit", size: nil, created_at: "2023-10-20 08:31:47.1600...171, job_id: 1, locked: "unknown", partition_id: 100, accessibility: "public", file_final_path: nil>1384 when job has no artifact of type junit1385 is expected to be nil1386 #job_artifacts_sast1387 when job has an artifact of type sast1388 is expected to eq #<Ci::JobArtifact project_id: 1, file_type: "sast", size: nil, created_at: "2023-10-20 08:31:47.28791...172, job_id: 1, locked: "unknown", partition_id: 100, accessibility: "public", file_final_path: nil>1389 when job has no artifact of type sast1390 is expected to be nil1391 #job_artifacts_dependency_scanning1392 when job has an artifact of type dependency_scanning1393 is expected to eq #<Ci::JobArtifact project_id: 1, file_type: "dependency_scanning", size: nil, created_at: "2023-10-20...173, job_id: 1, locked: "unknown", partition_id: 100, accessibility: "public", file_final_path: nil>1394 when job has no artifact of type dependency_scanning1395 is expected to be nil1396 #job_artifacts_container_scanning1397 when job has an artifact of type container_scanning1398 is expected to eq #<Ci::JobArtifact project_id: 1, file_type: "container_scanning", size: nil, created_at: "2023-10-20 ...174, job_id: 1, locked: "unknown", partition_id: 100, accessibility: "public", file_final_path: nil>1399 when job has no artifact of type container_scanning1400 is expected to be nil1401 #job_artifacts_dast1402 when job has an artifact of type dast1403 is expected to eq #<Ci::JobArtifact project_id: 1, file_type: "dast", size: nil, created_at: "2023-10-20 08:31:47.65731...175, job_id: 1, locked: "unknown", partition_id: 100, accessibility: "public", file_final_path: nil>1404 when job has no artifact of type dast1405 is expected to be nil1406 #job_artifacts_codequality1407 when job has an artifact of type codequality1408 is expected to eq #<Ci::JobArtifact project_id: 1, file_type: "codequality", size: nil, created_at: "2023-10-20 08:31:4...176, job_id: 1, locked: "unknown", partition_id: 100, accessibility: "public", file_final_path: nil>1409 when job has no artifact of type codequality1410 is expected to be nil1411 #job_artifacts_license_scanning1412 when job has an artifact of type license_scanning1413 is expected to eq #<Ci::JobArtifact project_id: 1, file_type: "license_scanning", size: nil, created_at: "2023-10-20 08...177, job_id: 1, locked: "unknown", partition_id: 100, accessibility: "public", file_final_path: nil>1414 when job has no artifact of type license_scanning1415 is expected to be nil1416 #job_artifacts_performance1417 when job has an artifact of type performance1418 is expected to eq #<Ci::JobArtifact project_id: 1, file_type: "performance", size: nil, created_at: "2023-10-20 08:31:4...178, job_id: 1, locked: "unknown", partition_id: 100, accessibility: "public", file_final_path: nil>1419 when job has no artifact of type performance1420 is expected to be nil1421 #job_artifacts_metrics1422 when job has an artifact of type metrics1423 is expected to eq #<Ci::JobArtifact project_id: 1, file_type: "metrics", size: nil, created_at: "2023-10-20 08:31:48.16...179, job_id: 1, locked: "unknown", partition_id: 100, accessibility: "public", file_final_path: nil>1424 when job has no artifact of type metrics1425 is expected to be nil1426 #job_artifacts_metrics_referee1427 when job has an artifact of type metrics_referee1428 is expected to eq #<Ci::JobArtifact project_id: 1, file_type: "metrics_referee", size: nil, created_at: "2023-10-20 08:...180, job_id: 1, locked: "unknown", partition_id: 100, accessibility: "public", file_final_path: nil>1429 when job has no artifact of type metrics_referee1430 is expected to be nil1431 #job_artifacts_network_referee1432 when job has an artifact of type network_referee1433 is expected to eq #<Ci::JobArtifact project_id: 1, file_type: "network_referee", size: nil, created_at: "2023-10-20 08:...181, job_id: 1, locked: "unknown", partition_id: 100, accessibility: "public", file_final_path: nil>1434 when job has no artifact of type network_referee1435 is expected to be nil1436 #job_artifacts_lsif1437 when job has an artifact of type lsif1438 is expected to eq #<Ci::JobArtifact project_id: 1, file_type: "lsif", size: nil, created_at: "2023-10-20 08:31:48.51445...182, job_id: 1, locked: "unknown", partition_id: 100, accessibility: "public", file_final_path: nil>1439 when job has no artifact of type lsif1440 is expected to be nil1441 #job_artifacts_dotenv1442 when job has an artifact of type dotenv1443 is expected to eq #<Ci::JobArtifact project_id: 1, file_type: "dotenv", size: nil, created_at: "2023-10-20 08:31:48.640...183, job_id: 1, locked: "unknown", partition_id: 100, accessibility: "public", file_final_path: nil>1444 when job has no artifact of type dotenv1445 is expected to be nil1446 #job_artifacts_cobertura1447 when job has an artifact of type cobertura1448 is expected to eq #<Ci::JobArtifact project_id: 1, file_type: "cobertura", size: nil, created_at: "2023-10-20 08:31:48....184, job_id: 1, locked: "unknown", partition_id: 100, accessibility: "public", file_final_path: nil>1449 when job has no artifact of type cobertura1450 is expected to be nil1451 #job_artifacts_terraform1452 when job has an artifact of type terraform1453 is expected to eq #<Ci::JobArtifact project_id: 1, file_type: "terraform", size: nil, created_at: "2023-10-20 08:31:48....185, job_id: 1, locked: "unknown", partition_id: 100, accessibility: "public", file_final_path: nil>1454 when job has no artifact of type terraform1455 is expected to be nil1456 #job_artifacts_accessibility1457 when job has an artifact of type accessibility1458 is expected to eq #<Ci::JobArtifact project_id: 1, file_type: "accessibility", size: nil, created_at: "2023-10-20 08:31...186, job_id: 1, locked: "unknown", partition_id: 100, accessibility: "public", file_final_path: nil>1459 when job has no artifact of type accessibility1460 is expected to be nil1461 #job_artifacts_cluster_applications1462 when job has an artifact of type cluster_applications1463 is expected to eq #<Ci::JobArtifact project_id: 1, file_type: "cluster_applications", size: nil, created_at: "2023-10-2...187, job_id: 1, locked: "unknown", partition_id: 100, accessibility: "public", file_final_path: nil>1464 when job has no artifact of type cluster_applications1465 is expected to be nil1466 #job_artifacts_secret_detection1467 when job has an artifact of type secret_detection1468 is expected to eq #<Ci::JobArtifact project_id: 1, file_type: "secret_detection", size: nil, created_at: "2023-10-20 08...188, job_id: 1, locked: "unknown", partition_id: 100, accessibility: "public", file_final_path: nil>1469 when job has no artifact of type secret_detection1470 is expected to be nil1471 #job_artifacts_requirements1472 when job has an artifact of type requirements1473 is expected to eq #<Ci::JobArtifact project_id: 1, file_type: "requirements", size: nil, created_at: "2023-10-20 08:31:...189, job_id: 1, locked: "unknown", partition_id: 100, accessibility: "public", file_final_path: nil>1474 when job has no artifact of type requirements1475 is expected to be nil1476 #job_artifacts_coverage_fuzzing1477 when job has an artifact of type coverage_fuzzing1478 is expected to eq #<Ci::JobArtifact project_id: 1, file_type: "coverage_fuzzing", size: nil, created_at: "2023-10-20 08...190, job_id: 1, locked: "unknown", partition_id: 100, accessibility: "public", file_final_path: nil>1479 when job has no artifact of type coverage_fuzzing1480 is expected to be nil1481 #job_artifacts_browser_performance1482 when job has an artifact of type browser_performance1483 is expected to eq #<Ci::JobArtifact project_id: 1, file_type: "browser_performance", size: nil, created_at: "2023-10-20...191, job_id: 1, locked: "unknown", partition_id: 100, accessibility: "public", file_final_path: nil>1484 when job has no artifact of type browser_performance1485 is expected to be nil1486 #job_artifacts_load_performance1487 when job has an artifact of type load_performance1488 is expected to eq #<Ci::JobArtifact project_id: 1, file_type: "load_performance", size: nil, created_at: "2023-10-20 08...192, job_id: 1, locked: "unknown", partition_id: 100, accessibility: "public", file_final_path: nil>1489 when job has no artifact of type load_performance1490 is expected to be nil1491 #job_artifacts_api_fuzzing1492 when job has an artifact of type api_fuzzing1493 is expected to eq #<Ci::JobArtifact project_id: 1, file_type: "api_fuzzing", size: nil, created_at: "2023-10-20 08:31:4...193, job_id: 1, locked: "unknown", partition_id: 100, accessibility: "public", file_final_path: nil>1494 when job has no artifact of type api_fuzzing1495 is expected to be nil1496 #job_artifacts_cluster_image_scanning1497 when job has an artifact of type cluster_image_scanning1498 is expected to eq #<Ci::JobArtifact project_id: 1, file_type: "cluster_image_scanning", size: nil, created_at: "2023-10...194, job_id: 1, locked: "unknown", partition_id: 100, accessibility: "public", file_final_path: nil>1499 when job has no artifact of type cluster_image_scanning1500 is expected to be nil1501 #job_artifacts_cyclonedx1502 when job has an artifact of type cyclonedx1503 is expected to eq #<Ci::JobArtifact project_id: 1, file_type: "cyclonedx", size: nil, created_at: "2023-10-20 08:31:50....195, job_id: 1, locked: "unknown", partition_id: 100, accessibility: "public", file_final_path: nil>1504 when job has no artifact of type cyclonedx1505 is expected to be nil1506 #job_artifacts_requirements_v21507 when job has an artifact of type requirements_v21508 is expected to eq #<Ci::JobArtifact project_id: 1, file_type: "requirements_v2", size: nil, created_at: "2023-10-20 08:...196, job_id: 1, locked: "unknown", partition_id: 100, accessibility: "public", file_final_path: nil>1509 when job has no artifact of type requirements_v21510 is expected to be nil1511 #job_artifacts_annotations1512 when job has an artifact of type annotations1513 is expected to eq #<Ci::JobArtifact project_id: 1, file_type: "annotations", size: nil, created_at: "2023-10-20 08:31:5...197, job_id: 1, locked: "unknown", partition_id: 100, accessibility: "public", file_final_path: nil>1514 when job has no artifact of type annotations1515 is expected to be nil1516 token format for builds transiting into pending1517 when build is initialized without a token and transits to pending1518 generates a token1519 when build is initialized with a token and transits to pending1520 does not change the existing token1521Gitlab::Asciidoc1522 without project1523 converts the input using Asciidoctor and default options1524 with asciidoc_opts1525 merges the options with default ones1526 with requested path1527 ignores {docname} when not available1528 sets {docname} for root1529 sets {docname} for just a filename1530 sets {docname} for a directory1531 sets {docname} for a complete path1532 XSS1533 does not convert dangerous link with extra attribute into HTML1534 does not convert dangerous link with unsafe scheme into HTML1535 does not convert dangerous image with onerror into HTML1536asciidoctor: WARNING: <stdin>: line 1: unterminated listing block1537 does not convert dangerous fenced code with inline script into HTML1538 does not allow locked attributes to be overridden1539 images1540 does lazy load and link image1541 does not automatically link image if link is explicitly defined1542 with admonition1543 preserves classes1544 with passthrough1545 removes non heading ids1546 removes non footnote def ids1547 removes non footnote ref ids1548 with footnotes1549 preserves ids and links1550 with section anchors1551 preserves ids and links1552 with xrefs1553 preserves ids1554 with checklist1555 preserves classes1556 with marks1557 preserves classes1558 with fenced block1559 highlights syntax1560 with listing block1561 highlights syntax1562 with stem block1563 does not apply syntax highlighting1564 external links1565 adds the `rel` attribute to the link1566 LaTex code1567 adds class js-render-math to the output1568 outfilesuffix1569 defaults to adoc1570 with mermaid diagrams1571 adds class js-render-mermaid to the output1572 applies subs in diagram block1573 with Kroki enabled1574 converts a graphviz diagram to image1575 does not convert a blockdiag diagram to image1576 does not allow kroki-plantuml-include to be overridden1577 does not allow kroki-server-url to be overridden1578 with Kroki and BlockDiag (additional format) enabled1579 converts a blockdiag diagram to image1580 with project1581 include directive1582 cyclic imports1583 completes successfully1584 with path to non-existing file1585 renders Unresolved directive placeholder1586 with path to a binary file1587 does not read the blob1588 renders Unresolved directive placeholder1589 with path to file in external storage1590 does not read the blob1591 renders Unresolved directive placeholder1592 with a URI that returns 4041593 renders Unresolved directive placeholder1594 with path to a textual file1595 when requested path is a file in the repo1596 the file is specified by absolute path1597 includes content of the file1598 the file is specified by relative path1599 includes content of the file1600 the file is specified by relative path with leading ./1601 includes content of the file1602 the file is specified by relative path to a file up one directory1603 includes content of the file1604 the file is specified by relative path for a file up multiple directories1605 includes content of the file1606 without a commit (only ref)1607 the file is specified by absolute path1608 includes content of the file1609 the file is specified by relative path1610 includes content of the file1611 the file is specified by relative path with leading ./1612 includes content of the file1613 the file is specified by relative path to a file up one directory1614 includes content of the file1615 the file is specified by relative path for a file up multiple directories1616 includes content of the file1617 when requested path is a directory in the repo1618 the file is specified by absolute path1619 includes content of the file1620 the file is specified by relative path1621 includes content of the file1622 the file is specified by relative path with leading ./1623 includes content of the file1624 the file is specified by relative path to a file up one directory1625 includes content of the file1626 the file is specified by relative path for a file up multiple directories1627 includes content of the file1628 without a commit (only ref)1629 the file is specified by absolute path1630 includes content of the file1631 the file is specified by relative path1632 includes content of the file1633 the file is specified by relative path with leading ./1634 includes content of the file1635 the file is specified by relative path to a file up one directory1636 includes content of the file1637 the file is specified by relative path for a file up multiple directories1638 includes content of the file1639 when repository is passed into the context1640 when the file exists1641 is expected to include "<p>Content from wiki</p>"1642 when the file does not exist1643 is expected to include "[ERROR: include::wiki_file.adoc[] - unresolved directive]"1644 the effect of max-includes1645 includes the content of all sources1646 when the document includes more than MAX_INCLUDES1647 includes only the content of the first 2 sources1648 recursive includes with relative paths1649 includes content of the included files recursively1650Noteable1651 #discussions1652 includes discussions for diff notes, commit diff notes, commit notes, and regular notes1653 #commenters1654 when noteable is an issue1655 behaves like commenters1656 does not automatically include the noteable author1657 with no user1658 contains a distinct list of non-internal note authors1659 with non project member1660 contains a distinct list of non-internal note authors1661 does not include a commenter from another noteable1662 with reporter1663 contains a distinct list of non-internal note authors1664 with noteable author1665 contains a distinct list of non-internal note authors1666 when noteable is a merge request1667 behaves like commenters1668 does not automatically include the noteable author1669 with no user1670 contains a distinct list of non-internal note authors1671 with non project member1672 contains a distinct list of non-internal note authors1673 does not include a commenter from another noteable1674 #discussion_ids_relation1675 returns ordered discussion_ids1676 #discussion_root_note_ids1677 returns ordered discussion_ids and synthetic note ids1678 filters by comments only1679 filters by system notes only1680 #grouped_diff_discussions1681 includes active discussions1682 does not include outdated discussions1683 groups the discussions by line code1684 discussion status1685 #discussions_resolvable?1686 when all discussions are unresolvable1687 returns false1688 when some discussions are unresolvable and some discussions are resolvable1689 returns true1690 when all discussions are resolvable1691 returns true1692 #discussions_resolved?1693 when discussions are not resolvable1694 returns false1695 when discussions are resolvable1696 when all resolvable discussions are resolved1697 returns true1698 when some resolvable discussions are not resolved1699 returns false1700 #discussions_to_be_resolved1701 includes only discussions that need to be resolved1702 #discussions_can_be_resolved_by?1703 all discussions can be resolved by the user1704 allows a user to resolve the discussions1705 one discussion cannot be resolved by the user1706 allows a user to resolve the discussions1707 .replyable_types1708 exposes the replyable types1709 .resolvable_types1710 exposes the resolvable types1711 .email_creatable_types1712 exposes the email creatable types1713 #capped_notes_count1714 notes number < 101715 the number of notes is returned1716 notes number > 101717 10 is returned1718 #has_any_diff_note_positions?1719 returns true when it has diff note positions1720 returns false when it has notes but no diff note positions1721 returns false when it has no notes1722 #creatable_note_email_address1723 incoming email enabled1724 returns the address to create a note1725 returns nil for unsupported types1726 incoming email disabled1727 returns nil1728 #supports_resolvable_notes1729 when noteable is an abuse report1730 returns true1731 #supports_replying_to_individual_notes1732 when noteable is an abuse report1733 returns true1734Ci::CreatePipelineService1735 #execute1736 skips creating pipeline for refs without .gitlab-ci.yml1737 performance1738 behaves like pipelines are created without N+1 SQL queries1739 avoids N+1 queries1740 valid params1741 responds with success1742 creates a pipeline1743 increments the prometheus counter1744 records pipeline size in a prometheus histogram1745 tracks included template usage1746 when merge requests already exist for this source branch1747 when the head pipeline sha equals merge request sha1748 updates head pipeline of each merge request1749 auto-cancel enabled1750 does not cancel HEAD pipeline1751 auto cancel pending non-HEAD pipelines1752 cancels running outdated pipelines1753 cancel created outdated pipelines1754 does not cancel pipelines from the other branches1755 when the interruptible attribute is1756 not defined1757 is cancelable1758 set to true1759 is cancelable1760 set to false1761 is not cancelable1762 interruptible builds1763 properly configures interruptible status1764 when only interruptible builds are running1765 when build marked explicitly by interruptible is running1766 cancels running outdated pipelines1767 when build that is not marked as interruptible is running1768 cancels running outdated pipelines1769 when an uninterruptible build is running1770 does not cancel running outdated pipelines1771 when an build is waiting on an interruptible scheduled task1772 cancels running outdated pipelines1773 when a uninterruptible build has finished1774 does not cancel running outdated pipelines1775 auto-cancel disabled1776 does not auto cancel created non-HEAD pipelines1777 skip tag if there is no build for it1778 creates commit if there is appropriate job1779 creates commit if there is no appropriate job but deploy job has right ref setting1780 config evaluation1781 when config is in a file in repository1782 pull it from the repository1783 when config is from Auto-DevOps1784 pull it from Auto-DevOps1785 when config is not found1786 responds with error message1787 when an unexpected error is raised1788 saves error in pipeline1789 logs error1790 when yaml is invalid1791 increments the error metric1792 behaves like a failed pipeline1793 creates failed pipeline1794 when receive git commit1795 behaves like a failed pipeline1796 creates failed pipeline1797 when config has ports1798 in the main image1799 behaves like a failed pipeline1800 creates failed pipeline1801 in the job image1802 behaves like a failed pipeline1803 creates failed pipeline1804 in the service1805 behaves like a failed pipeline1806 creates failed pipeline1807 when an unexpected error is raised1808 saves error in pipeline1809 logs error1810 when commit contains a [ci skip] directive1811 when the commit message is some message[ci skip]1812 behaves like skipping a pipeline1813 skips pipeline creation1814 when the commit message is some message[skip ci]1815 behaves like skipping a pipeline1816 skips pipeline creation1817 when the commit message is some message[CI SKIP]1818 behaves like skipping a pipeline1819 skips pipeline creation1820 when the commit message is some message[SKIP CI]1821 behaves like skipping a pipeline1822 skips pipeline creation1823 when the commit message is some message[ci_skip]1824 behaves like skipping a pipeline1825 skips pipeline creation1826 when the commit message is some message[skip_ci]1827 behaves like skipping a pipeline1828 skips pipeline creation1829 when the commit message is some message[ci-skip]1830 behaves like skipping a pipeline1831 skips pipeline creation1832 when the commit message is some message[skip-ci]1833 behaves like skipping a pipeline1834 skips pipeline creation1835 when commit message does not contain [ci skip] nor [skip ci]1836 behaves like creating a pipeline1837 does not skip pipeline creation1838 when commit message is nil1839 behaves like creating a pipeline1840 does not skip pipeline creation1841 when there is [ci skip] tag in commit message and yaml is invalid1842 behaves like skipping a pipeline1843 skips pipeline creation1844 when push options contain ci.skip1845 creates a pipline in the skipped state1846 when there are no jobs for this pipeline1847 does not create a new pipeline1848 #iid1849 rewinds iid1850 when the configuration includes ID tokens1851 creates variables for the ID tokens1852 with manual actions1853 does not create a new pipeline1854 when builds with auto-retries are configured1855 as an integer1856 correctly creates builds with auto-retry value configured1857 as hash1858 correctly creates builds with auto-retry value configured1859 with resource group1860 when resource group is defined1861 persists the association correctly1862 when resource group key includes predefined variables1863 interpolates the variables into the key correctly1864 when resource group is defined for review app deployment1865 persists the association correctly1866 initializes scoped variables only once for each build1867 with timeout1868 when builds with custom timeouts are configured1869 correctly creates builds with custom timeout value configured1870 with release1871 simple example1872 behaves like a successful release pipeline1873 is valid config1874 example with all release metadata1875 behaves like a successful release pipeline1876 is valid config1877 when ref is a protected branch1878 behaves like when ref is protected1879 when user is developer1880 does not create a pipeline1881 when user is maintainer1882 creates a protected pipeline1883 when trigger belongs to no one1884 does not create a pipeline1885 when trigger belongs to a developer1886 does not create a pipeline1887 when trigger belongs to a maintainer1888 creates a pipeline1889 when ref is a protected tag1890 behaves like when ref is protected1891 when user is developer1892 does not create a pipeline1893 when user is maintainer1894 creates a protected pipeline1895 when trigger belongs to no one1896 does not create a pipeline1897 when trigger belongs to a developer1898 does not create a pipeline1899 when trigger belongs to a maintainer1900 creates a pipeline1901 when pipeline is running for a tag1902 creates a tagged pipeline1903 when pipeline is running for a nonexistant-branch1904 does not create the pipeline1905 when there is a tag with that nonexistant-branch1906 does not create the pipeline1907 when pipeline is running for a branch with the name of both a branch and a tag1908 creates the pipeline for the branch1909 when pipeline is running for a tag with the name of both a branch and a tag1910 creates the pipeline for the tag1911 when pipeline is running for an ambiguous ref1912 does not create the pipeline1913 when pipeline variables are specified1914 with valid pipeline variables1915 creates a pipeline with specified variables1916 with duplicate pipeline variables1917 fails to create the pipeline1918 with more than one duplicate pipeline variable1919 fails to create the pipeline1920 Pipeline for external pull requests1921 when source is external pull request1922 when config has external_pull_requests keywords1923 when external pull request is specified1924 creates an external pull request pipeline1925 when ref is tag1926 does not create an extrnal pull request pipeline1927 when pull request is created from fork1928 does not create an external pull request pipeline (PENDING: Not yet implemented)1929 when there are no matched jobs1930 does not create a detached merge request pipeline1931 when external pull request is not specified1932 does not create an external pull request pipeline1933 when config does not have external_pull_requests keywords1934 when external pull request is specified1935 creates an external pull request pipeline1936 when external pull request is not specified1937 does not create an external pull request pipeline1938 Pipelines for merge requests1939 when source is merge request1940 when config has merge_requests keywords1941 when merge request is specified1942 creates a detached merge request pipeline1943 persists the specified source sha1944 does not persist target sha for detached merge request pipeline1945 schedules update for the head pipeline of the merge request1946 schedules a namespace onboarding create action worker1947 when target sha is specified1948 persists the target sha1949 when ref is tag1950 does not create a merge request pipeline1951 when merge request is created from a forked project1952 creates a legacy detached merge request pipeline in the forked project1953 when there are no matched jobs1954 does not create a detached merge request pipeline1955 when config does not have merge_requests keywords1956 when merge request is specified1957 does not create a detached merge request pipeline1958 when config uses regular expression for only keyword1959 when merge request is specified1960 does not create a detached merge request pipeline1961 when config uses variables for only keyword1962 when merge request is specified1963 does not create a detached merge request pipeline1964 when config has 'except: [tags]'1965 when merge request is specified1966 does not create a detached merge request pipeline1967 when source is web1968 when config has merge_requests keywords1969 creates a branch pipeline1970 when needs is used1971 when pipeline on master is created1972 creates a pipeline with build_a and test_a1973 bulk inserts all needs1974 when pipeline on feature is created1975 when save_on_errors is enabled1976 does create a pipeline as test_a depends on build_a1977 behaves like has errors1978 contains the expected errors1979 when save_on_errors is disabled1980 does not create a pipeline as test_a depends on build_a1981 behaves like has errors1982 contains the expected errors1983 when pipeline on v1.0.0 is created1984 does create a pipeline only with deploy1985 pipeline components1986 when there is no version with specified tag1987 does not create a pipeline1988 when there is a proper revision available1989 when component is valid1990 creates a pipeline using a pipeline component1991 when interpolation is invalid1992 does not create a pipeline1993 when there is a syntax error in the template1994 does not create a pipeline1995 pipeline components using include:with instead of include:inputs1996 when there is no version with specified tag1997 does not create a pipeline1998 when there is a proper revision available1999 when component is valid2000 creates a pipeline using a pipeline component2001 when inputs have a description2002 creates a pipeline2003 when interpolation is invalid2004 does not create a pipeline2005 when there is a syntax error in the template2006 does not create a pipeline2007Ci::PipelineSchedulePolicy2008 rules2009 rules for protected ref2010 for branch2011 with refs/heads/master2012 push_access_level: :no_one_can_push, merge_access_level: :no_one_can_merge, project_role: :owner, accessible: :be_disallowed2013 for create_pipeline_schedule2014 is expected to be disallowed :create_pipeline_schedule2015 for play_pipeline_schedule2016 is expected to be disallowed :play_pipeline_schedule2017 push_access_level: :no_one_can_push, merge_access_level: :no_one_can_merge, project_role: :maintainer, accessible: :be_disallowed2018 for create_pipeline_schedule2019 is expected to be disallowed :create_pipeline_schedule2020 for play_pipeline_schedule2021 is expected to be disallowed :play_pipeline_schedule2022 push_access_level: :no_one_can_push, merge_access_level: :no_one_can_merge, project_role: :developer, accessible: :be_disallowed2023 for create_pipeline_schedule2024 is expected to be disallowed :create_pipeline_schedule2025 for play_pipeline_schedule2026 is expected to be disallowed :play_pipeline_schedule2027 push_access_level: :no_one_can_push, merge_access_level: :no_one_can_merge, project_role: :reporter, accessible: :be_disallowed2028 for create_pipeline_schedule2029 is expected to be disallowed :create_pipeline_schedule2030 for play_pipeline_schedule2031 is expected to be disallowed :play_pipeline_schedule2032 push_access_level: :no_one_can_push, merge_access_level: :no_one_can_merge, project_role: :guest, accessible: :be_disallowed2033 for create_pipeline_schedule2034 is expected to be disallowed :create_pipeline_schedule2035 for play_pipeline_schedule2036 is expected to be disallowed :play_pipeline_schedule2037 push_access_level: :maintainers_can_push, merge_access_level: :no_one_can_merge, project_role: :owner, accessible: :be_allowed2038 for create_pipeline_schedule2039 is expected to be allowed :create_pipeline_schedule2040 for play_pipeline_schedule2041 is expected to be allowed :play_pipeline_schedule2042 push_access_level: :maintainers_can_push, merge_access_level: :no_one_can_merge, project_role: :maintainer, accessible: :be_allowed2043 for create_pipeline_schedule2044 is expected to be allowed :create_pipeline_schedule2045 for play_pipeline_schedule2046 is expected to be allowed :play_pipeline_schedule2047 push_access_level: :maintainers_can_push, merge_access_level: :no_one_can_merge, project_role: :developer, accessible: :be_disallowed2048 for create_pipeline_schedule2049 is expected to be disallowed :create_pipeline_schedule2050 for play_pipeline_schedule2051 is expected to be disallowed :play_pipeline_schedule2052 push_access_level: :maintainers_can_push, merge_access_level: :no_one_can_merge, project_role: :reporter, accessible: :be_disallowed2053 for create_pipeline_schedule2054 is expected to be disallowed :create_pipeline_schedule2055 for play_pipeline_schedule2056 is expected to be disallowed :play_pipeline_schedule2057 push_access_level: :maintainers_can_push, merge_access_level: :no_one_can_merge, project_role: :guest, accessible: :be_disallowed2058 for create_pipeline_schedule2059 is expected to be disallowed :create_pipeline_schedule2060 for play_pipeline_schedule2061 is expected to be disallowed :play_pipeline_schedule2062 push_access_level: :developers_can_push, merge_access_level: :no_one_can_merge, project_role: :owner, accessible: :be_allowed2063 for create_pipeline_schedule2064 is expected to be allowed :create_pipeline_schedule2065 for play_pipeline_schedule2066 is expected to be allowed :play_pipeline_schedule2067 push_access_level: :developers_can_push, merge_access_level: :no_one_can_merge, project_role: :maintainer, accessible: :be_allowed2068 for create_pipeline_schedule2069 is expected to be allowed :create_pipeline_schedule2070 for play_pipeline_schedule2071 is expected to be allowed :play_pipeline_schedule2072 push_access_level: :developers_can_push, merge_access_level: :no_one_can_merge, project_role: :developer, accessible: :be_allowed2073 for create_pipeline_schedule2074 is expected to be allowed :create_pipeline_schedule2075 for play_pipeline_schedule2076 is expected to be allowed :play_pipeline_schedule2077 push_access_level: :developers_can_push, merge_access_level: :no_one_can_merge, project_role: :reporter, accessible: :be_disallowed2078 for create_pipeline_schedule2079 is expected to be disallowed :create_pipeline_schedule2080 for play_pipeline_schedule2081 is expected to be disallowed :play_pipeline_schedule2082 push_access_level: :developers_can_push, merge_access_level: :no_one_can_merge, project_role: :guest, accessible: :be_disallowed2083 for create_pipeline_schedule2084 is expected to be disallowed :create_pipeline_schedule2085 for play_pipeline_schedule2086 is expected to be disallowed :play_pipeline_schedule2087 push_access_level: :no_one_can_push, merge_access_level: :maintainers_can_merge, project_role: :owner, accessible: :be_allowed2088 for create_pipeline_schedule2089 is expected to be allowed :create_pipeline_schedule2090 for play_pipeline_schedule2091 is expected to be allowed :play_pipeline_schedule2092 push_access_level: :no_one_can_push, merge_access_level: :maintainers_can_merge, project_role: :maintainer, accessible: :be_allowed2093 for create_pipeline_schedule2094 is expected to be allowed :create_pipeline_schedule2095 for play_pipeline_schedule2096 is expected to be allowed :play_pipeline_schedule2097 push_access_level: :no_one_can_push, merge_access_level: :maintainers_can_merge, project_role: :developer, accessible: :be_disallowed2098 for create_pipeline_schedule2099 is expected to be disallowed :create_pipeline_schedule2100 for play_pipeline_schedule2101 is expected to be disallowed :play_pipeline_schedule2102 push_access_level: :no_one_can_push, merge_access_level: :maintainers_can_merge, project_role: :reporter, accessible: :be_disallowed2103 for create_pipeline_schedule2104 is expected to be disallowed :create_pipeline_schedule2105 for play_pipeline_schedule2106 is expected to be disallowed :play_pipeline_schedule2107 push_access_level: :no_one_can_push, merge_access_level: :maintainers_can_merge, project_role: :guest, accessible: :be_disallowed2108 for create_pipeline_schedule2109 is expected to be disallowed :create_pipeline_schedule2110 for play_pipeline_schedule2111 is expected to be disallowed :play_pipeline_schedule2112 push_access_level: :maintainers_can_push, merge_access_level: :maintainers_can_merge, project_role: :owner, accessible: :be_allowed2113 for create_pipeline_schedule2114 is expected to be allowed :create_pipeline_schedule2115 for play_pipeline_schedule2116 is expected to be allowed :play_pipeline_schedule2117 push_access_level: :maintainers_can_push, merge_access_level: :maintainers_can_merge, project_role: :maintainer, accessible: :be_allowed2118 for create_pipeline_schedule2119 is expected to be allowed :create_pipeline_schedule2120 for play_pipeline_schedule2121 is expected to be allowed :play_pipeline_schedule2122 push_access_level: :maintainers_can_push, merge_access_level: :maintainers_can_merge, project_role: :developer, accessible: :be_disallowed2123 for create_pipeline_schedule2124 is expected to be disallowed :create_pipeline_schedule2125 for play_pipeline_schedule2126 is expected to be disallowed :play_pipeline_schedule2127 push_access_level: :maintainers_can_push, merge_access_level: :maintainers_can_merge, project_role: :reporter, accessible: :be_disallowed2128 for create_pipeline_schedule2129 is expected to be disallowed :create_pipeline_schedule2130 for play_pipeline_schedule2131 is expected to be disallowed :play_pipeline_schedule2132 push_access_level: :maintainers_can_push, merge_access_level: :maintainers_can_merge, project_role: :guest, accessible: :be_disallowed2133 for create_pipeline_schedule2134 is expected to be disallowed :create_pipeline_schedule2135 for play_pipeline_schedule2136 is expected to be disallowed :play_pipeline_schedule2137 push_access_level: :developers_can_push, merge_access_level: :maintainers_can_merge, project_role: :owner, accessible: :be_allowed2138 for create_pipeline_schedule2139 is expected to be allowed :create_pipeline_schedule2140 for play_pipeline_schedule2141 is expected to be allowed :play_pipeline_schedule2142 push_access_level: :developers_can_push, merge_access_level: :maintainers_can_merge, project_role: :maintainer, accessible: :be_allowed2143 for create_pipeline_schedule2144 is expected to be allowed :create_pipeline_schedule2145 for play_pipeline_schedule2146 is expected to be allowed :play_pipeline_schedule2147 push_access_level: :developers_can_push, merge_access_level: :maintainers_can_merge, project_role: :developer, accessible: :be_allowed2148 for create_pipeline_schedule2149 is expected to be allowed :create_pipeline_schedule2150 for play_pipeline_schedule2151 is expected to be allowed :play_pipeline_schedule2152 push_access_level: :developers_can_push, merge_access_level: :maintainers_can_merge, project_role: :reporter, accessible: :be_disallowed2153 for create_pipeline_schedule2154 is expected to be disallowed :create_pipeline_schedule2155 for play_pipeline_schedule2156 is expected to be disallowed :play_pipeline_schedule2157 push_access_level: :developers_can_push, merge_access_level: :maintainers_can_merge, project_role: :guest, accessible: :be_disallowed2158 for create_pipeline_schedule2159 is expected to be disallowed :create_pipeline_schedule2160 for play_pipeline_schedule2161 is expected to be disallowed :play_pipeline_schedule2162 push_access_level: :no_one_can_push, merge_access_level: :developers_can_merge, project_role: :owner, accessible: :be_allowed2163 for create_pipeline_schedule2164 is expected to be allowed :create_pipeline_schedule2165 for play_pipeline_schedule2166 is expected to be allowed :play_pipeline_schedule2167 push_access_level: :no_one_can_push, merge_access_level: :developers_can_merge, project_role: :maintainer, accessible: :be_allowed2168 for create_pipeline_schedule2169 is expected to be allowed :create_pipeline_schedule2170 for play_pipeline_schedule2171 is expected to be allowed :play_pipeline_schedule2172 push_access_level: :no_one_can_push, merge_access_level: :developers_can_merge, project_role: :developer, accessible: :be_allowed2173 for create_pipeline_schedule2174 is expected to be allowed :create_pipeline_schedule2175 for play_pipeline_schedule2176 is expected to be allowed :play_pipeline_schedule2177 push_access_level: :no_one_can_push, merge_access_level: :developers_can_merge, project_role: :reporter, accessible: :be_disallowed2178 for create_pipeline_schedule2179 is expected to be disallowed :create_pipeline_schedule2180 for play_pipeline_schedule2181 is expected to be disallowed :play_pipeline_schedule2182 push_access_level: :no_one_can_push, merge_access_level: :developers_can_merge, project_role: :guest, accessible: :be_disallowed2183 for create_pipeline_schedule2184 is expected to be disallowed :create_pipeline_schedule2185 for play_pipeline_schedule2186 is expected to be disallowed :play_pipeline_schedule2187 push_access_level: :maintainers_can_push, merge_access_level: :developers_can_merge, project_role: :owner, accessible: :be_allowed2188 for create_pipeline_schedule2189 is expected to be allowed :create_pipeline_schedule2190 for play_pipeline_schedule2191 is expected to be allowed :play_pipeline_schedule2192 push_access_level: :maintainers_can_push, merge_access_level: :developers_can_merge, project_role: :maintainer, accessible: :be_allowed2193 for create_pipeline_schedule2194 is expected to be allowed :create_pipeline_schedule2195 for play_pipeline_schedule2196 is expected to be allowed :play_pipeline_schedule2197 push_access_level: :maintainers_can_push, merge_access_level: :developers_can_merge, project_role: :developer, accessible: :be_allowed2198 for create_pipeline_schedule2199 is expected to be allowed :create_pipeline_schedule2200 for play_pipeline_schedule2201 is expected to be allowed :play_pipeline_schedule2202 push_access_level: :maintainers_can_push, merge_access_level: :developers_can_merge, project_role: :reporter, accessible: :be_disallowed2203 for create_pipeline_schedule2204 is expected to be disallowed :create_pipeline_schedule2205 for play_pipeline_schedule2206 is expected to be disallowed :play_pipeline_schedule2207 push_access_level: :maintainers_can_push, merge_access_level: :developers_can_merge, project_role: :guest, accessible: :be_disallowed2208 for create_pipeline_schedule2209 is expected to be disallowed :create_pipeline_schedule2210 for play_pipeline_schedule2211 is expected to be disallowed :play_pipeline_schedule2212 push_access_level: :developers_can_push, merge_access_level: :developers_can_merge, project_role: :owner, accessible: :be_allowed2213 for create_pipeline_schedule2214 is expected to be allowed :create_pipeline_schedule2215 for play_pipeline_schedule2216 is expected to be allowed :play_pipeline_schedule2217 push_access_level: :developers_can_push, merge_access_level: :developers_can_merge, project_role: :maintainer, accessible: :be_allowed2218 for create_pipeline_schedule2219 is expected to be allowed :create_pipeline_schedule2220 for play_pipeline_schedule2221 is expected to be allowed :play_pipeline_schedule2222 push_access_level: :developers_can_push, merge_access_level: :developers_can_merge, project_role: :developer, accessible: :be_allowed2223 for create_pipeline_schedule2224 is expected to be allowed :create_pipeline_schedule2225 for play_pipeline_schedule2226 is expected to be allowed :play_pipeline_schedule2227 push_access_level: :developers_can_push, merge_access_level: :developers_can_merge, project_role: :reporter, accessible: :be_disallowed2228 for create_pipeline_schedule2229 is expected to be disallowed :create_pipeline_schedule2230 for play_pipeline_schedule2231 is expected to be disallowed :play_pipeline_schedule2232 push_access_level: :developers_can_push, merge_access_level: :developers_can_merge, project_role: :guest, accessible: :be_disallowed2233 for create_pipeline_schedule2234 is expected to be disallowed :create_pipeline_schedule2235 for play_pipeline_schedule2236 is expected to be disallowed :play_pipeline_schedule2237 with master2238 push_access_level: :no_one_can_push, merge_access_level: :no_one_can_merge, project_role: :owner, accessible: :be_disallowed2239 for create_pipeline_schedule2240 is expected to be disallowed :create_pipeline_schedule2241 for play_pipeline_schedule2242 is expected to be disallowed :play_pipeline_schedule2243 push_access_level: :no_one_can_push, merge_access_level: :no_one_can_merge, project_role: :maintainer, accessible: :be_disallowed2244 for create_pipeline_schedule2245 is expected to be disallowed :create_pipeline_schedule2246 for play_pipeline_schedule2247 is expected to be disallowed :play_pipeline_schedule2248 push_access_level: :no_one_can_push, merge_access_level: :no_one_can_merge, project_role: :developer, accessible: :be_disallowed2249 for create_pipeline_schedule2250 is expected to be disallowed :create_pipeline_schedule2251 for play_pipeline_schedule2252 is expected to be disallowed :play_pipeline_schedule2253 push_access_level: :no_one_can_push, merge_access_level: :no_one_can_merge, project_role: :reporter, accessible: :be_disallowed2254 for create_pipeline_schedule2255 is expected to be disallowed :create_pipeline_schedule2256 for play_pipeline_schedule2257 is expected to be disallowed :play_pipeline_schedule2258 push_access_level: :no_one_can_push, merge_access_level: :no_one_can_merge, project_role: :guest, accessible: :be_disallowed2259 for create_pipeline_schedule2260 is expected to be disallowed :create_pipeline_schedule2261 for play_pipeline_schedule2262 is expected to be disallowed :play_pipeline_schedule2263 push_access_level: :maintainers_can_push, merge_access_level: :no_one_can_merge, project_role: :owner, accessible: :be_allowed2264 for create_pipeline_schedule2265 is expected to be allowed :create_pipeline_schedule2266 for play_pipeline_schedule2267 is expected to be allowed :play_pipeline_schedule2268 push_access_level: :maintainers_can_push, merge_access_level: :no_one_can_merge, project_role: :maintainer, accessible: :be_allowed2269 for create_pipeline_schedule2270 is expected to be allowed :create_pipeline_schedule2271 for play_pipeline_schedule2272 is expected to be allowed :play_pipeline_schedule2273 push_access_level: :maintainers_can_push, merge_access_level: :no_one_can_merge, project_role: :developer, accessible: :be_disallowed2274 for create_pipeline_schedule2275 is expected to be disallowed :create_pipeline_schedule2276 for play_pipeline_schedule2277 is expected to be disallowed :play_pipeline_schedule2278 push_access_level: :maintainers_can_push, merge_access_level: :no_one_can_merge, project_role: :reporter, accessible: :be_disallowed2279 for create_pipeline_schedule2280 is expected to be disallowed :create_pipeline_schedule2281 for play_pipeline_schedule2282 is expected to be disallowed :play_pipeline_schedule2283 push_access_level: :maintainers_can_push, merge_access_level: :no_one_can_merge, project_role: :guest, accessible: :be_disallowed2284 for create_pipeline_schedule2285 is expected to be disallowed :create_pipeline_schedule2286 for play_pipeline_schedule2287 is expected to be disallowed :play_pipeline_schedule2288 push_access_level: :developers_can_push, merge_access_level: :no_one_can_merge, project_role: :owner, accessible: :be_allowed2289 for create_pipeline_schedule2290 is expected to be allowed :create_pipeline_schedule2291 for play_pipeline_schedule2292 is expected to be allowed :play_pipeline_schedule2293 push_access_level: :developers_can_push, merge_access_level: :no_one_can_merge, project_role: :maintainer, accessible: :be_allowed2294 for create_pipeline_schedule2295 is expected to be allowed :create_pipeline_schedule2296 for play_pipeline_schedule2297 is expected to be allowed :play_pipeline_schedule2298 push_access_level: :developers_can_push, merge_access_level: :no_one_can_merge, project_role: :developer, accessible: :be_allowed2299 for create_pipeline_schedule2300 is expected to be allowed :create_pipeline_schedule2301 for play_pipeline_schedule2302 is expected to be allowed :play_pipeline_schedule2303 push_access_level: :developers_can_push, merge_access_level: :no_one_can_merge, project_role: :reporter, accessible: :be_disallowed2304 for create_pipeline_schedule2305 is expected to be disallowed :create_pipeline_schedule2306 for play_pipeline_schedule2307 is expected to be disallowed :play_pipeline_schedule2308 push_access_level: :developers_can_push, merge_access_level: :no_one_can_merge, project_role: :guest, accessible: :be_disallowed2309 for create_pipeline_schedule2310 is expected to be disallowed :create_pipeline_schedule2311 for play_pipeline_schedule2312 is expected to be disallowed :play_pipeline_schedule2313 push_access_level: :no_one_can_push, merge_access_level: :maintainers_can_merge, project_role: :owner, accessible: :be_allowed2314 for create_pipeline_schedule2315 is expected to be allowed :create_pipeline_schedule2316 for play_pipeline_schedule2317 is expected to be allowed :play_pipeline_schedule2318 push_access_level: :no_one_can_push, merge_access_level: :maintainers_can_merge, project_role: :maintainer, accessible: :be_allowed2319 for create_pipeline_schedule2320 is expected to be allowed :create_pipeline_schedule2321 for play_pipeline_schedule2322 is expected to be allowed :play_pipeline_schedule2323 push_access_level: :no_one_can_push, merge_access_level: :maintainers_can_merge, project_role: :developer, accessible: :be_disallowed2324 for create_pipeline_schedule2325 is expected to be disallowed :create_pipeline_schedule2326 for play_pipeline_schedule2327 is expected to be disallowed :play_pipeline_schedule2328 push_access_level: :no_one_can_push, merge_access_level: :maintainers_can_merge, project_role: :reporter, accessible: :be_disallowed2329 for create_pipeline_schedule2330 is expected to be disallowed :create_pipeline_schedule2331 for play_pipeline_schedule2332 is expected to be disallowed :play_pipeline_schedule2333 push_access_level: :no_one_can_push, merge_access_level: :maintainers_can_merge, project_role: :guest, accessible: :be_disallowed2334 for create_pipeline_schedule2335 is expected to be disallowed :create_pipeline_schedule2336 for play_pipeline_schedule2337 is expected to be disallowed :play_pipeline_schedule2338 push_access_level: :maintainers_can_push, merge_access_level: :maintainers_can_merge, project_role: :owner, accessible: :be_allowed2339 for create_pipeline_schedule2340 is expected to be allowed :create_pipeline_schedule2341 for play_pipeline_schedule2342 is expected to be allowed :play_pipeline_schedule2343 push_access_level: :maintainers_can_push, merge_access_level: :maintainers_can_merge, project_role: :maintainer, accessible: :be_allowed2344 for create_pipeline_schedule2345 is expected to be allowed :create_pipeline_schedule2346 for play_pipeline_schedule2347 is expected to be allowed :play_pipeline_schedule2348 push_access_level: :maintainers_can_push, merge_access_level: :maintainers_can_merge, project_role: :developer, accessible: :be_disallowed2349 for create_pipeline_schedule2350 is expected to be disallowed :create_pipeline_schedule2351 for play_pipeline_schedule2352 is expected to be disallowed :play_pipeline_schedule2353 push_access_level: :maintainers_can_push, merge_access_level: :maintainers_can_merge, project_role: :reporter, accessible: :be_disallowed2354 for create_pipeline_schedule2355 is expected to be disallowed :create_pipeline_schedule2356 for play_pipeline_schedule2357 is expected to be disallowed :play_pipeline_schedule2358 push_access_level: :maintainers_can_push, merge_access_level: :maintainers_can_merge, project_role: :guest, accessible: :be_disallowed2359 for create_pipeline_schedule2360 is expected to be disallowed :create_pipeline_schedule2361 for play_pipeline_schedule2362 is expected to be disallowed :play_pipeline_schedule2363 push_access_level: :developers_can_push, merge_access_level: :maintainers_can_merge, project_role: :owner, accessible: :be_allowed2364 for create_pipeline_schedule2365 is expected to be allowed :create_pipeline_schedule2366 for play_pipeline_schedule2367 is expected to be allowed :play_pipeline_schedule2368 push_access_level: :developers_can_push, merge_access_level: :maintainers_can_merge, project_role: :maintainer, accessible: :be_allowed2369 for create_pipeline_schedule2370 is expected to be allowed :create_pipeline_schedule2371 for play_pipeline_schedule2372 is expected to be allowed :play_pipeline_schedule2373 push_access_level: :developers_can_push, merge_access_level: :maintainers_can_merge, project_role: :developer, accessible: :be_allowed2374 for create_pipeline_schedule2375 is expected to be allowed :create_pipeline_schedule2376 for play_pipeline_schedule2377 is expected to be allowed :play_pipeline_schedule2378 push_access_level: :developers_can_push, merge_access_level: :maintainers_can_merge, project_role: :reporter, accessible: :be_disallowed2379 for create_pipeline_schedule2380 is expected to be disallowed :create_pipeline_schedule2381 for play_pipeline_schedule2382 is expected to be disallowed :play_pipeline_schedule2383 push_access_level: :developers_can_push, merge_access_level: :maintainers_can_merge, project_role: :guest, accessible: :be_disallowed2384 for create_pipeline_schedule2385 is expected to be disallowed :create_pipeline_schedule2386 for play_pipeline_schedule2387 is expected to be disallowed :play_pipeline_schedule2388 push_access_level: :no_one_can_push, merge_access_level: :developers_can_merge, project_role: :owner, accessible: :be_allowed2389 for create_pipeline_schedule2390 is expected to be allowed :create_pipeline_schedule2391 for play_pipeline_schedule2392 is expected to be allowed :play_pipeline_schedule2393 push_access_level: :no_one_can_push, merge_access_level: :developers_can_merge, project_role: :maintainer, accessible: :be_allowed2394 for create_pipeline_schedule2395 is expected to be allowed :create_pipeline_schedule2396 for play_pipeline_schedule2397 is expected to be allowed :play_pipeline_schedule2398 push_access_level: :no_one_can_push, merge_access_level: :developers_can_merge, project_role: :developer, accessible: :be_allowed2399 for create_pipeline_schedule2400 is expected to be allowed :create_pipeline_schedule2401 for play_pipeline_schedule2402 is expected to be allowed :play_pipeline_schedule2403 push_access_level: :no_one_can_push, merge_access_level: :developers_can_merge, project_role: :reporter, accessible: :be_disallowed2404 for create_pipeline_schedule2405 is expected to be disallowed :create_pipeline_schedule2406 for play_pipeline_schedule2407 is expected to be disallowed :play_pipeline_schedule2408 push_access_level: :no_one_can_push, merge_access_level: :developers_can_merge, project_role: :guest, accessible: :be_disallowed2409 for create_pipeline_schedule2410 is expected to be disallowed :create_pipeline_schedule2411 for play_pipeline_schedule2412 is expected to be disallowed :play_pipeline_schedule2413 push_access_level: :maintainers_can_push, merge_access_level: :developers_can_merge, project_role: :owner, accessible: :be_allowed2414 for create_pipeline_schedule2415 is expected to be allowed :create_pipeline_schedule2416 for play_pipeline_schedule2417 is expected to be allowed :play_pipeline_schedule2418 push_access_level: :maintainers_can_push, merge_access_level: :developers_can_merge, project_role: :maintainer, accessible: :be_allowed2419 for create_pipeline_schedule2420 is expected to be allowed :create_pipeline_schedule2421 for play_pipeline_schedule2422 is expected to be allowed :play_pipeline_schedule2423 push_access_level: :maintainers_can_push, merge_access_level: :developers_can_merge, project_role: :developer, accessible: :be_allowed2424 for create_pipeline_schedule2425 is expected to be allowed :create_pipeline_schedule2426 for play_pipeline_schedule2427 is expected to be allowed :play_pipeline_schedule2428 push_access_level: :maintainers_can_push, merge_access_level: :developers_can_merge, project_role: :reporter, accessible: :be_disallowed2429 for create_pipeline_schedule2430 is expected to be disallowed :create_pipeline_schedule2431 for play_pipeline_schedule2432 is expected to be disallowed :play_pipeline_schedule2433 push_access_level: :maintainers_can_push, merge_access_level: :developers_can_merge, project_role: :guest, accessible: :be_disallowed2434 for create_pipeline_schedule2435 is expected to be disallowed :create_pipeline_schedule2436 for play_pipeline_schedule2437 is expected to be disallowed :play_pipeline_schedule2438 push_access_level: :developers_can_push, merge_access_level: :developers_can_merge, project_role: :owner, accessible: :be_allowed2439 for create_pipeline_schedule2440 is expected to be allowed :create_pipeline_schedule2441 for play_pipeline_schedule2442 is expected to be allowed :play_pipeline_schedule2443 push_access_level: :developers_can_push, merge_access_level: :developers_can_merge, project_role: :maintainer, accessible: :be_allowed2444 for create_pipeline_schedule2445 is expected to be allowed :create_pipeline_schedule2446 for play_pipeline_schedule2447 is expected to be allowed :play_pipeline_schedule2448 push_access_level: :developers_can_push, merge_access_level: :developers_can_merge, project_role: :developer, accessible: :be_allowed2449 for create_pipeline_schedule2450 is expected to be allowed :create_pipeline_schedule2451 for play_pipeline_schedule2452 is expected to be allowed :play_pipeline_schedule2453 push_access_level: :developers_can_push, merge_access_level: :developers_can_merge, project_role: :reporter, accessible: :be_disallowed2454 for create_pipeline_schedule2455 is expected to be disallowed :create_pipeline_schedule2456 for play_pipeline_schedule2457 is expected to be disallowed :play_pipeline_schedule2458 push_access_level: :developers_can_push, merge_access_level: :developers_can_merge, project_role: :guest, accessible: :be_disallowed2459 for create_pipeline_schedule2460 is expected to be disallowed :create_pipeline_schedule2461 for play_pipeline_schedule2462 is expected to be disallowed :play_pipeline_schedule2463 for tag2464 with refs/tags/v1.0.02465 access_level: :no_one_can_create, project_role: :owner, accessible: :be_disallowed2466 for create_pipeline_schedule2467 is expected to be disallowed :create_pipeline_schedule2468 for play_pipeline_schedule2469 is expected to be disallowed :play_pipeline_schedule2470 access_level: :no_one_can_create, project_role: :maintainer, accessible: :be_disallowed2471 for create_pipeline_schedule2472 is expected to be disallowed :create_pipeline_schedule2473 for play_pipeline_schedule2474 is expected to be disallowed :play_pipeline_schedule2475 access_level: :no_one_can_create, project_role: :developer, accessible: :be_disallowed2476 for create_pipeline_schedule2477 is expected to be disallowed :create_pipeline_schedule2478 for play_pipeline_schedule2479 is expected to be disallowed :play_pipeline_schedule2480 access_level: :no_one_can_create, project_role: :reporter, accessible: :be_disallowed2481 for create_pipeline_schedule2482 is expected to be disallowed :create_pipeline_schedule2483 for play_pipeline_schedule2484 is expected to be disallowed :play_pipeline_schedule2485 access_level: :no_one_can_create, project_role: :guest, accessible: :be_disallowed2486 for create_pipeline_schedule2487 is expected to be disallowed :create_pipeline_schedule2488 for play_pipeline_schedule2489 is expected to be disallowed :play_pipeline_schedule2490 access_level: :maintainers_can_create, project_role: :owner, accessible: :be_allowed2491 for create_pipeline_schedule2492 is expected to be allowed :create_pipeline_schedule2493 for play_pipeline_schedule2494 is expected to be allowed :play_pipeline_schedule2495 access_level: :maintainers_can_create, project_role: :maintainer, accessible: :be_allowed2496 for create_pipeline_schedule2497 is expected to be allowed :create_pipeline_schedule2498 for play_pipeline_schedule2499 is expected to be allowed :play_pipeline_schedule2500 access_level: :maintainers_can_create, project_role: :developer, accessible: :be_disallowed2501 for create_pipeline_schedule2502 is expected to be disallowed :create_pipeline_schedule2503 for play_pipeline_schedule2504 is expected to be disallowed :play_pipeline_schedule2505 access_level: :maintainers_can_create, project_role: :reporter, accessible: :be_disallowed2506 for create_pipeline_schedule2507 is expected to be disallowed :create_pipeline_schedule2508 for play_pipeline_schedule2509 is expected to be disallowed :play_pipeline_schedule2510 access_level: :maintainers_can_create, project_role: :guest, accessible: :be_disallowed2511 for create_pipeline_schedule2512 is expected to be disallowed :create_pipeline_schedule2513 for play_pipeline_schedule2514 is expected to be disallowed :play_pipeline_schedule2515 access_level: :developers_can_create, project_role: :owner, accessible: :be_allowed2516 for create_pipeline_schedule2517 is expected to be allowed :create_pipeline_schedule2518 for play_pipeline_schedule2519 is expected to be allowed :play_pipeline_schedule2520 access_level: :developers_can_create, project_role: :maintainer, accessible: :be_allowed2521 for create_pipeline_schedule2522 is expected to be allowed :create_pipeline_schedule2523 for play_pipeline_schedule2524 is expected to be allowed :play_pipeline_schedule2525 access_level: :developers_can_create, project_role: :developer, accessible: :be_allowed2526 for create_pipeline_schedule2527 is expected to be allowed :create_pipeline_schedule2528 for play_pipeline_schedule2529 is expected to be allowed :play_pipeline_schedule2530 access_level: :developers_can_create, project_role: :reporter, accessible: :be_disallowed2531 for create_pipeline_schedule2532 is expected to be disallowed :create_pipeline_schedule2533 for play_pipeline_schedule2534 is expected to be disallowed :play_pipeline_schedule2535 access_level: :developers_can_create, project_role: :guest, accessible: :be_disallowed2536 for create_pipeline_schedule2537 is expected to be disallowed :create_pipeline_schedule2538 for play_pipeline_schedule2539 is expected to be disallowed :play_pipeline_schedule2540 with v1.0.02541 access_level: :no_one_can_create, project_role: :owner, accessible: :be_disallowed2542 for create_pipeline_schedule2543 is expected to be disallowed :create_pipeline_schedule2544 for play_pipeline_schedule2545 is expected to be disallowed :play_pipeline_schedule2546 access_level: :no_one_can_create, project_role: :maintainer, accessible: :be_disallowed2547 for create_pipeline_schedule2548 is expected to be disallowed :create_pipeline_schedule2549 for play_pipeline_schedule2550 is expected to be disallowed :play_pipeline_schedule2551 access_level: :no_one_can_create, project_role: :developer, accessible: :be_disallowed2552 for create_pipeline_schedule2553 is expected to be disallowed :create_pipeline_schedule2554 for play_pipeline_schedule2555 is expected to be disallowed :play_pipeline_schedule2556 access_level: :no_one_can_create, project_role: :reporter, accessible: :be_disallowed2557 for create_pipeline_schedule2558 is expected to be disallowed :create_pipeline_schedule2559 for play_pipeline_schedule2560 is expected to be disallowed :play_pipeline_schedule2561 access_level: :no_one_can_create, project_role: :guest, accessible: :be_disallowed2562 for create_pipeline_schedule2563 is expected to be disallowed :create_pipeline_schedule2564 for play_pipeline_schedule2565 is expected to be disallowed :play_pipeline_schedule2566 access_level: :maintainers_can_create, project_role: :owner, accessible: :be_allowed2567 for create_pipeline_schedule2568 is expected to be allowed :create_pipeline_schedule2569 for play_pipeline_schedule2570 is expected to be allowed :play_pipeline_schedule2571 access_level: :maintainers_can_create, project_role: :maintainer, accessible: :be_allowed2572 for create_pipeline_schedule2573 is expected to be allowed :create_pipeline_schedule2574 for play_pipeline_schedule2575 is expected to be allowed :play_pipeline_schedule2576 access_level: :maintainers_can_create, project_role: :developer, accessible: :be_disallowed2577 for create_pipeline_schedule2578 is expected to be disallowed :create_pipeline_schedule2579 for play_pipeline_schedule2580 is expected to be disallowed :play_pipeline_schedule2581 access_level: :maintainers_can_create, project_role: :reporter, accessible: :be_disallowed2582 for create_pipeline_schedule2583 is expected to be disallowed :create_pipeline_schedule2584 for play_pipeline_schedule2585 is expected to be disallowed :play_pipeline_schedule2586 access_level: :maintainers_can_create, project_role: :guest, accessible: :be_disallowed2587 for create_pipeline_schedule2588 is expected to be disallowed :create_pipeline_schedule2589 for play_pipeline_schedule2590 is expected to be disallowed :play_pipeline_schedule2591 access_level: :developers_can_create, project_role: :owner, accessible: :be_allowed2592 for create_pipeline_schedule2593 is expected to be allowed :create_pipeline_schedule2594 for play_pipeline_schedule2595 is expected to be allowed :play_pipeline_schedule2596 access_level: :developers_can_create, project_role: :maintainer, accessible: :be_allowed2597 for create_pipeline_schedule2598 is expected to be allowed :create_pipeline_schedule2599 for play_pipeline_schedule2600 is expected to be allowed :play_pipeline_schedule2601 access_level: :developers_can_create, project_role: :developer, accessible: :be_allowed2602 for create_pipeline_schedule2603 is expected to be allowed :create_pipeline_schedule2604 for play_pipeline_schedule2605 is expected to be allowed :play_pipeline_schedule2606 access_level: :developers_can_create, project_role: :reporter, accessible: :be_disallowed2607 for create_pipeline_schedule2608 is expected to be disallowed :create_pipeline_schedule2609 for play_pipeline_schedule2610 is expected to be disallowed :play_pipeline_schedule2611 access_level: :developers_can_create, project_role: :guest, accessible: :be_disallowed2612 for create_pipeline_schedule2613 is expected to be disallowed :create_pipeline_schedule2614 for play_pipeline_schedule2615 is expected to be disallowed :play_pipeline_schedule2616 rules for owner of schedule2617 includes abilities to do all operations on pipeline schedule2618 rules for a maintainer2619 allows for playing and destroying a pipeline schedule2620 does not allow for updating of an existing schedule2621 rules for non-owner of schedule2622 includes abilities to take ownership2623Gitlab::ImportExport::Project::TreeSaver2624 behaves like saves project tree successfully2625 saves project tree attributes2626 with project root2627 is expected to include {"description" => "description", "visibility_level" => 20}2628 is expected not to include {"runners_token" => "token"}2629 has approvals_before_merge set2630 with milestones2631 is expected not to be empty2632 with merge_requests2633 is expected not to be empty2634 has merge request's milestones2635 has merge request's source branch SHA2636 has merge request's target branch SHA2637 has events2638 has merge requests diffs2639 has merge request diff files2640 has merge request diff commits2641 has merge requests comments2642 has author on merge requests comments2643 has merge request approvals2644 has merge request resource label events2645 has merge request assignees2646 has merge request reviewers2647 has merge requests system notes2648 has no merge_when_pipeline_succeeds2649 with snippets2650 is expected not to be empty2651 has snippet notes2652 with releases2653 is expected not to be empty2654 has no author on releases2655 has the author ID on releases2656 with issues2657 is expected not to be empty2658 has a work_item_type2659 has issue comments2660 has issue assignees2661 has author on issue comments2662 has labels associated to records2663 has project and group labels2664 has priorities associated to labels2665 has issue resource label events2666 saves the issue designs correctly2667 saves the issue design notes correctly2668 saves the issue design versions correctly2669 with ci_pipelines2670 is expected not to be empty2671 has pipeline stages2672 has pipeline builds2673 has pipeline generic_commit_statuses2674 has pipeline bridges2675 with commit_notes2676 is expected not to be empty2677 with labels2678 is expected not to be empty2679 with project_feature2680 is expected not to be empty2681 has project feature2682 with custom_attributes2683 has custom attributes2684 with badges2685 has badges2686 with project_members2687 is expected not to be empty2688 with boards2689 is expected not to be empty2690 with pipeline schedules2691 has owner_id2692 #saves project tree2693 saves project successfully2694 does not complain about non UTF-8 characters in MR diff files2695 overrides group members2696 when has no permission2697 does not export group members2698 when has permission as maintainer2699 does not export group members2700 when has permission as group owner2701 exports group members as group owner2702 as admin2703 when admin mode is enabled2704 exports group members as admin2705 exports group members as project members2706 when admin mode is disabled2707 does not export group members2708 with description override2709 is expected to include {"description" => "Foo Bar"}2710 when streaming has to retry2711 retries and succeeds2712 retries and does not succeed2713Gitlab::Database::MigrationHelpers::AutomaticLockWritesOnTables2714 # order random2715 when executing create_table migrations2716 when single database2717main: == : migrating ===============================================================2718main: -- create_table(:_test_gitlab_main_table)2719main: -> 0.0041s2720main: == : migrated (0.0147s) ======================================================2721main: == : migrating ===============================================================2722main: -- create_table(:_test_gitlab_main_cell_table)2723main: -> 0.0031s2724main: == : migrated (0.0119s) ======================================================2725main: == : migrating ===============================================================2726main: -- create_table(:_test_gitlab_main_clusterwide_table)2727main: -> 0.0032s2728main: == : migrated (0.0122s) ======================================================2729main: == : migrating ===============================================================2730main: -- create_table(:_test_gitlab_ci_table)2731main: -> 0.0032s2732main: == : migrated (0.0124s) ======================================================2733main: == : migrating ===============================================================2734main: -- create_table(:_test_table)2735main: -> 0.0035s2736main: == : migrated (0.0115s) ======================================================2737 does not lock any newly created tables2738 when multiple databases2739 for creating a gitlab_main table2740 behaves like does not lock writes on table2741 allows deleting records from the table (PENDING: Skipping because ci is shared or doesn't not exist)2742 behaves like locks writes on table2743 errors on deleting (PENDING: Skipping because ci is shared or doesn't not exist)2744 when table listed as a deleted table2745 behaves like does not lock writes on table2746 allows deleting records from the table (PENDING: Skipping because ci is shared or doesn't not exist)2747 when the migration skips automatic locking of tables2748 behaves like does not lock writes on table2749 allows deleting records from the table (PENDING: Skipping because ci is shared or doesn't not exist)2750 when migration does not run within a transaction2751 behaves like locks writes on table using WithLockRetries2752 locks the writes on the table using WithLockRetries (PENDING: Skipping because ci is shared or doesn't not exist)2753 when the SKIP_AUTOMATIC_LOCK_ON_WRITES feature flag is set2754 behaves like does not lock writes on table2755 allows deleting records from the table (PENDING: Skipping because ci is shared or doesn't not exist)2756 when the automatic_lock_writes_on_table feature flag is disabled2757 behaves like does not lock writes on table2758 allows deleting records from the table (PENDING: Skipping because ci is shared or doesn't not exist)2759 for creating a gitlab_main_clusterwide table2760 behaves like does not lock writes on table2761 allows deleting records from the table (PENDING: Skipping because ci is shared or doesn't not exist)2762 behaves like locks writes on table2763 errors on deleting (PENDING: Skipping because ci is shared or doesn't not exist)2764 for creating a gitlab_main_cell table2765 behaves like does not lock writes on table2766 allows deleting records from the table (PENDING: Skipping because ci is shared or doesn't not exist)2767 behaves like locks writes on table2768 errors on deleting (PENDING: Skipping because ci is shared or doesn't not exist)2769 for creating a gitlab_pm table2770 behaves like does not lock writes on table2771 allows deleting records from the table (PENDING: Skipping because ci is shared or doesn't not exist)2772 behaves like locks writes on table2773 errors on deleting (PENDING: Skipping because ci is shared or doesn't not exist)2774 for creating a gitlab_ci table2775 behaves like does not lock writes on table2776 allows deleting records from the table (PENDING: Skipping because ci is shared or doesn't not exist)2777 behaves like locks writes on table2778 errors on deleting (PENDING: Skipping because ci is shared or doesn't not exist)2779 when table listed as a deleted table2780 behaves like does not lock writes on table2781 allows deleting records from the table (PENDING: Skipping because ci is shared or doesn't not exist)2782 when the migration skips automatic locking of tables2783 behaves like does not lock writes on table2784 allows deleting records from the table (PENDING: Skipping because ci is shared or doesn't not exist)2785 when the SKIP_AUTOMATIC_LOCK_ON_WRITES feature flag is set2786 behaves like does not lock writes on table2787 allows deleting records from the table (PENDING: Skipping because ci is shared or doesn't not exist)2788 when the automatic_lock_writes_on_table feature flag is disabled2789 behaves like does not lock writes on table2790 allows deleting records from the table (PENDING: Skipping because ci is shared or doesn't not exist)2791 for creating gitlab_shared table2792 behaves like does not lock writes on table2793 allows deleting records from the table (PENDING: Skipping because ci is shared or doesn't not exist)2794 behaves like does not lock writes on table2795 allows deleting records from the table (PENDING: Skipping because ci is shared or doesn't not exist)2796 for creating a gitlab_geo table2797 behaves like does not lock writes on table2798 allows deleting records from the table (PENDING: Skipping because ci is shared or doesn't not exist)2799 for creating an unknown gitlab_schema table2800 raises an error about undefined gitlab_schema (PENDING: Skipping because ci is shared or doesn't not exist)2801 when renaming a table2802 when a gitlab_main table2803 behaves like does not lock writes on table2804 allows deleting records from the table (PENDING: Skipping because ci is shared or doesn't not exist)2805 behaves like locks writes on table2806 errors on deleting (PENDING: Skipping because ci is shared or doesn't not exist)2807 when a gitlab_ci table2808 behaves like does not lock writes on table2809 allows deleting records from the table (PENDING: Skipping because ci is shared or doesn't not exist)2810 behaves like locks writes on table2811 errors on deleting (PENDING: Skipping because ci is shared or doesn't not exist)2812 when reversing drop_table migrations2813 when single database2814main: == : migrating ===============================================================2815main: -- drop_table(:_test_gitlab_main_table)2816main: -> 0.0025s2817main: == : migrated (0.0118s) ======================================================2818main: == : migrating ===============================================================2819main: -- drop_table(:_test_gitlab_ci_table)2820main: -> 0.0023s2821main: == : migrated (0.0103s) ======================================================2822main: == : migrating ===============================================================2823main: -- drop_table(:_test_table)2824main: -> 0.0019s2825main: == : migrated (0.0100s) ======================================================2826main: == : reverting ===============================================================2827main: -- create_table(:_test_gitlab_main_table)2828main: -> 0.0042s2829main: == : reverted (0.0161s) ======================================================2830main: == : reverting ===============================================================2831main: -- create_table(:_test_gitlab_ci_table)2832main: -> 0.0034s2833main: == : reverted (0.0129s) ======================================================2834main: == : reverting ===============================================================2835main: -- create_table(:_test_table)2836main: -> 0.0030s2837main: == : reverted (0.0122s) ======================================================2838 does not lock any newly created tables2839 when multiple databases2840 for re-creating a gitlab_main table2841 behaves like does not lock writes on table2842 allows deleting records from the table (PENDING: Skipping because ci is shared or doesn't not exist)2843 behaves like locks writes on table2844 errors on deleting (PENDING: Skipping because ci is shared or doesn't not exist)2845 for re-creating a gitlab_ci table2846 behaves like does not lock writes on table2847 allows deleting records from the table (PENDING: Skipping because ci is shared or doesn't not exist)2848 behaves like locks writes on table2849 errors on deleting (PENDING: Skipping because ci is shared or doesn't not exist)2850 for re-creating a gitlab_shared table2851 behaves like does not lock writes on table2852 allows deleting records from the table (PENDING: Skipping because ci is shared or doesn't not exist)2853 behaves like does not lock writes on table2854 allows deleting records from the table (PENDING: Skipping because ci is shared or doesn't not exist)2855Suggestions::ApplyService2856 patch is appliable2857 non-fork project2858 behaves like successfully creates commit and updates suggestions2859 updates the files with the new content2860 updates suggestion applied and commit_id columns2861 created commit has users email and name2862 tracks apply suggestion event2863 when a custom suggestion commit message2864 is not specified2865 uses the default commit message2866 is specified2867 generates a custom commit message2868 with a user suggested commit message2869 uses the user's commit message2870 when it fails to apply because a file was changed2871 returns error message2872 when HEAD from position is different from source branch HEAD on repo2873 returns error message2874 single suggestion2875 author of suggestion applies suggestion2876 created commit by same author and committer2877 another user applies suggestion2878 created commit has authors info and commiters info2879 multiple suggestions2880 when all the same author2881 uses first authors information2882 when all different authors2883 uses committers information2884 multiple suggestions applied sequentially2885 applies multiple suggestions in subsequent versions correctly2886 multi-line suggestion2887 behaves like successfully creates commit and updates suggestions2888 updates the files with the new content2889 updates suggestion applied and commit_id columns2890 created commit has users email and name2891 tracks apply suggestion event2892 when a custom suggestion commit message2893 is not specified2894 uses the default commit message2895 is specified2896 generates a custom commit message2897 with a user suggested commit message2898 uses the user's commit message2899 remove an empty line suggestion2900 behaves like successfully creates commit and updates suggestions2901 updates the files with the new content2902 updates suggestion applied and commit_id columns2903 created commit has users email and name2904 tracks apply suggestion event2905 when a custom suggestion commit message2906 is not specified2907 uses the default commit message2908 is specified2909 generates a custom commit message2910 with a user suggested commit message2911 uses the user's commit message2912 fork-project2913 updates file in the source project2914 no permission2915 user cannot write in project repo2916 returns error2917 patch is not appliable2918 diff file was not found2919 returns error message2920 behaves like service not tracking apply suggestion event2921 does not track apply suggestion event2922 when not all suggestions belong to the same branch2923 renders error message2924 behaves like service not tracking apply suggestion event2925 does not track apply suggestion event2926 suggestion is not appliable2927 returns error message2928 behaves like service not tracking apply suggestion event2929 does not track apply suggestion event2930 lines of suggestions overlap2931 returns error message2932 behaves like service not tracking apply suggestion event2933 does not track apply suggestion event2934Packages::Maven::Metadata::CreateVersionsXmlService2935 #execute2936 with same versions in both sides2937 returns no changes2938 with more versions2939 in the xml side2940 behaves like returning an xml with versions in the database2941 returns an metadata versions xml with versions in the database2942 in the database side2943 behaves like returning an xml with versions in the database2944 returns an metadata versions xml with versions in the database2945 with an xml without a release version2946 logs a warn with the reason2947 behaves like returning an xml with versions in the database2948 returns an metadata versions xml with versions in the database2949 with completely different versions2950 behaves like returning an xml with versions in the database2951 returns an metadata versions xml with versions in the database2952 with no versions in the database2953 returns a success2954 with an xml without a release version2955 returns a success2956 with differences in both sides2957 behaves like returning an xml with versions in the database2958 returns an metadata versions xml with versions in the database2959 with a new release and latest from the database2960 behaves like returning an xml with2961 returns an xml with the updated release and latest versions2962 with a latest in the xml2963 behaves like returning an xml with2964 returns an xml with the updated release and latest versions2965 with release and latest not existing in the database2966 behaves like returning an xml with2967 returns an xml with the updated release and latest versions2968 with added versions in the database side no more recent than release2969 behaves like returning an xml with2970 returns an xml with the updated release and latest versions2971 with a latest in the xml2972 behaves like returning an xml with2973 returns an xml with the updated release and latest versions2974 only snapshot versions are in the database2975 returns an xml without any release element2976 behaves like returning an xml with2977 returns an xml with the updated release and latest versions2978 last updated timestamp2979 updates the last updated timestamp2980 with an incomplete metadata content2981 behaves like returning an error service response2982 returns an error service response2983 with an invalid metadata content2984 behaves like returning an error service response2985 returns an error service response2986 behaves like handling metadata content pointing to a file for the create xml service2987 with metadata content pointing to a file2988 with valid content2989 returns no changes2990 with invalid content2991 behaves like returning an error service response2992 returns an error service response2993 with no content2994 behaves like returning an error service response2995 returns an error service response2996 behaves like handling invalid parameters for create xml service2997 with no package2998 behaves like returning an error service response2999 returns an error service response3000 with no metadata content3001 behaves like returning an error service response3002 returns an error service response3003Ci::Runners::CreateRunnerService#execute3004 # order random3005 with :runner_type param set to project_type3006 when anonymous user3007 behaves like it cannot create a runner3008 runner payload is nil3009 is expected to be error3010 when group owner3011 behaves like it can create a runner3012 creates a runner of the specified type3013 with default params provided3014 is expected to be success3015 uses default values when none are provided3016 with non-default params provided3017 is expected to be success3018 creates runner with specified values3019 with a nil paused value3020 is expected to be success3021 creates runner with active set to true3022 with no paused value given3023 is expected to be success3024 creates runner with active set to true3025 with missing scope param3026 behaves like it cannot create a runner3027 runner payload is nil3028 is expected to be error3029 when non-admin user3030 behaves like it cannot create a runner3031 runner payload is nil3032 is expected to be error3033 with project permissions to create runner3034 behaves like it can create a runner3035 creates a runner of the specified type3036 with default params provided3037 is expected to be success3038 uses default values when none are provided3039 with non-default params provided3040 is expected to be success3041 creates runner with specified values3042 with a nil paused value3043 is expected to be success3044 creates runner with active set to true3045 with no paused value given3046 is expected to be success3047 creates runner with active set to true3048 when admin user3049 behaves like it cannot create a runner3050 runner payload is nil3051 is expected to be error3052 when admin mode is enabled3053 behaves like it can create a runner3054 creates a runner of the specified type3055 with default params provided3056 is expected to be success3057 uses default values when none are provided3058 with non-default params provided3059 is expected to be success3060 creates runner with specified values3061 with a nil paused value3062 is expected to be success3063 creates runner with active set to true3064 with no paused value given3065 is expected to be success3066 creates runner with active set to true3067 behaves like it can return an error3068 when the runner fails to save3069 returns error message3070 behaves like it cannot create a runner3071 runner payload is nil3072 is expected to be error3073 with :runner_type param set to instance_type3074 when anonymous user3075 behaves like it cannot create a runner3076 runner payload is nil3077 is expected to be error3078 when non-admin user3079 behaves like it cannot create a runner3080 runner payload is nil3081 is expected to be error3082 when admin user3083 behaves like it cannot create a runner3084 runner payload is nil3085 is expected to be error3086 when admin mode is enabled3087 behaves like it can create a runner3088 creates a runner of the specified type3089 with default params provided3090 is expected to be success3091 uses default values when none are provided3092 with non-default params provided3093 is expected to be success3094 creates runner with specified values3095 with a nil paused value3096 is expected to be success3097 creates runner with active set to true3098 with no paused value given3099 is expected to be success3100 creates runner with active set to true3101 behaves like it can return an error3102 when the runner fails to save3103 returns error message3104 behaves like it cannot create a runner3105 runner payload is nil3106 is expected to be error3107 with unexpected scope param specified3108 behaves like it cannot create a runner3109 runner payload is nil3110 is expected to be error3111 when model validation fails3112 returns error message and reason3113 behaves like it cannot create a runner3114 runner payload is nil3115 is expected to be error3116 with :runner_type param set to group_type3117 when anonymous user3118 behaves like it cannot create a runner3119 runner payload is nil3120 is expected to be error3121 when non-admin user3122 behaves like it cannot create a runner3123 runner payload is nil3124 is expected to be error3125 when group owner3126 behaves like it can create a runner3127 creates a runner of the specified type3128 with default params provided3129 is expected to be success3130 uses default values when none are provided3131 with non-default params provided3132 is expected to be success3133 creates runner with specified values3134 with a nil paused value3135 is expected to be success3136 creates runner with active set to true3137 with no paused value given3138 is expected to be success3139 creates runner with active set to true3140 with missing scope param3141 behaves like it cannot create a runner3142 runner payload is nil3143 is expected to be error3144 when admin user3145 behaves like it cannot create a runner3146 runner payload is nil3147 is expected to be error3148 when admin mode is enabled3149 behaves like it can create a runner3150 creates a runner of the specified type3151 with default params provided3152 is expected to be success3153 uses default values when none are provided3154 with non-default params provided3155 is expected to be success3156 creates runner with specified values3157 with a nil paused value3158 is expected to be success3159 creates runner with active set to true3160 with no paused value given3161 is expected to be success3162 creates runner with active set to true3163 behaves like it can return an error3164 when the runner fails to save3165 returns error message3166 behaves like it cannot create a runner3167 runner payload is nil3168 is expected to be error3169TodosFinder3170 #execute3171 #execute3172 returns no todos if user is nil3173 filtering3174 returns correct todos when filtered by a project3175 returns correct todos when filtered by a group3176 when filtering by type3177 returns todos by type when filtered by a single type3178 returns todos by type when filtered by multiple types3179 returns all todos when type is nil3180 returns all todos when type is an empty collection3181 returns all todos when type is blank3182 returns todos by type when blank type is in type collection3183 returns todos of all types when only blanks are in a collection3184 returns all todos when no type param3185 raises an argument error when invalid type is passed3186 when filtering for actions3187 by action ids3188 returns the expected todos3189 returns the expected todos when filtering for multiple action ids3190 by action names3191 returns the expected todos3192 returns the expected todos when filtering for multiple action names3193 when filtering by author3194 returns correct todos when filtering by an author3195 querying for multiple authors3196 returns the correct todo items3197 by groups3198 with subgroups3199 returns todos from subgroups when filtered by a group3200 filtering for multiple groups3201 returns the expected groups3202 by state3203 returns the expected items when no state is provided3204 returns the expected items when a state is provided3205 returns the expected items when multiple states are provided3206 by project3207 returns the expected todos for one project3208 returns the expected todos for many projects3209 when filtering by target id3210 returns the expected todos for the target3211 returns the expected todos for multiple target ids3212 returns the expected todos for empty target id collection3213 external authorization3214 behaves like a finder with external authorization service3215 finds the subject3216 with an external authorization service3217 does not include the subject when no project was given3218 includes the subject when a project id was given3219 #sort3220 sorts by priority3221 by date3222 sorts with oldest created first3223 sorts with newest created first3224 .todo_types3225 returns the expected types3226 #any_for_target?3227 returns true if there are any todos for the given target3228 returns false if there are no todos for the given target3229Gitlab::Ci::Trace3230 associations3231 is expected to respond to #job3232 when trace is migrated to object storage3233 reloads the trace in case of a chunk error3234 when live trace feature is disabled3235 behaves like trace with disabled live trace feature3236 behaves like common trace features3237 #html3238 returns formatted html3239 returns last line of formatted html3240 #raw3241 returns raw output3242 returns last line of raw output3243 #read3244 gitlab_ci_archived_trace_consistent_reads feature flag enabled3245 calls ::Ci::Build.sticking.find_caught_up_replica3246 gitlab_ci_archived_trace_consistent_reads feature flag disabled3247 does not call ::Ci::Build.sticking.find_caught_up_replica3248 #extract_coverage3249 matching coverage3250 returns valid coverage3251 no coverage3252 returs nil3253 #extract_sections3254 no sections3255 returs []3256 multiple sections available3257 returns valid sections3258 logs contains "section_start"3259 returns only one section3260 missing section_end3261 returns no sections3262 missing section_start3263 returns no sections3264 inverted section_start section_end3265 returns no sections3266 #write3267 when arhicved trace does not exist yet3268 does not raise an error3269 when arhicved trace already exists3270 raises an error3271 #set3272 returns trace3273 overwrite trace3274 returns new trace3275 runners token3276 hides token3277 hides build token3278 hides token3279 #append3280 returns correct trace3281 tries to append trace at different offset3282 fails with append3283 runners token3284 hides token3285 build token3286 hides token3287 #archive!3288 when live trace chunks exists3289 has job trace_chunks3290 gitlab_ci_archived_trace_consistent_reads feature flag enabled3291 calls ::Ci::Build.sticking.stick3292 gitlab_ci_archived_trace_consistent_reads feature flag disabled3293 does not call ::Ci::Build.sticking.stick3294 when build status is success3295 does not have an archived trace yet3296 when archives3297 has an archived trace3298 when another process has already been archiving3299 blocks concurrent archiving3300 #read3301 when trace artifact exists3302 behaves like read successfully with IO3303 yields with source3304 when current_path (with project_id) exists3305 behaves like read successfully with IO3306 yields with source3307 when no sources exist3308 behaves like failed to read3309 yields without source3310 trace handling3311 trace does not exist3312 is expected to equal false3313 when trace artifact exists3314 is expected to be truthy3315 when the trace artifact has been erased3316 is expected to be falsy3317 removes associations3318 new trace path is used3319 trace exist3320 can be erased3321 #archive!3322 when job does not have trace artifact3323 when trace file stored in default path3324 behaves like archive trace file3325 is expected to eq "f0ec4d8149e55ace7117d95f408160f8c4844b3ad76ee68b0d7e35989a44459e"3326 when failed to create clone file3327 behaves like source trace file stays intact3328 is expected to be truthy3329 when failed to create job artifact record3330 behaves like source trace file stays intact3331 is expected to be truthy3332 when job has trace artifact3333 does not archive3334 when job is not finished yet3335 does not archive3336 #erase!3337 when it is a live trace3338 when trace is stored in file storage3339 is expected not to be nil3340 removes trace3341 when it is an archived trace3342 has trace at first3343 removes trace3344 when live trace feature is enabled3345 behaves like trace with enabled live trace feature3346 behaves like common trace features3347 #html3348 returns formatted html3349 returns last line of formatted html3350 #raw3351 returns raw output3352 returns last line of raw output3353 #read3354 gitlab_ci_archived_trace_consistent_reads feature flag enabled3355 calls ::Ci::Build.sticking.find_caught_up_replica3356 gitlab_ci_archived_trace_consistent_reads feature flag disabled3357 does not call ::Ci::Build.sticking.find_caught_up_replica3358 #extract_coverage3359 matching coverage3360 returns valid coverage3361 no coverage3362 returs nil3363 #extract_sections3364 no sections3365 returs []3366 multiple sections available3367 returns valid sections3368 logs contains "section_start"3369 returns only one section3370 missing section_end3371 returns no sections3372 missing section_start3373 returns no sections3374 inverted section_start section_end3375 returns no sections3376 #write3377 when arhicved trace does not exist yet3378 does not raise an error3379 when arhicved trace already exists3380 raises an error3381 #set3382 returns trace3383 overwrite trace3384 returns new trace3385 runners token3386 hides token3387 hides build token3388 hides token3389 #append3390 returns correct trace3391 tries to append trace at different offset3392 fails with append3393 runners token3394 hides token3395 build token3396 hides token3397 #archive!3398 when live trace chunks exists3399 has job trace_chunks3400 gitlab_ci_archived_trace_consistent_reads feature flag enabled3401 calls ::Ci::Build.sticking.stick3402 gitlab_ci_archived_trace_consistent_reads feature flag disabled3403 does not call ::Ci::Build.sticking.stick3404 when build status is success3405 does not have an archived trace yet3406 when archives3407 has an archived trace3408 when another process has already been archiving3409 blocks concurrent archiving3410 #read3411 when trace artifact exists3412 behaves like read successfully with IO3413 yields with source3414 when live trace exists3415 behaves like read successfully with ChunkedIO3416 yields with source3417 when no sources exist3418 behaves like failed to read3419 yields without source3420 trace handling3421 trace does not exist3422 is expected to equal false3423 when trace artifact exists3424 is expected to be truthy3425 when the trace artifact has been erased3426 is expected to be falsy3427 removes associations3428 stored in live trace3429 trace exist3430 can be erased3431 returns live trace data3432 #archived?3433 when trace does not exist3434 is expected to be falsy3435 when archived trace exists3436 is truthy3437 when archived trace record exists but file is not stored3438 is falsy3439 when live trace exists3440 is expected to be falsy3441 #live?3442 when trace does not exist3443 is expected to be falsy3444 when archived trace exists3445 is expected to be falsy3446 when live trace exists3447 is expected to be truthy3448 #archive!3449 when job does not have trace artifact3450 when trace is stored in ChunkedIO3451 behaves like archive trace file in ChunkedIO3452 is expected to eq "f0ec4d8149e55ace7117d95f408160f8c4844b3ad76ee68b0d7e35989a44459e"3453 when failed to create clone file3454 behaves like a pre-commit error3455 does not save the trace artifact3456 behaves like source trace in ChunkedIO stays intact3457 is expected to eq "BUILD TRACE"3458 when failed to create job artifact record3459 behaves like a pre-commit error3460 does not save the trace artifact3461 behaves like source trace in ChunkedIO stays intact3462 is expected to eq "BUILD TRACE"3463 when storing the file raises an error3464 behaves like a post-commit error3465 saves the trace artifact but not the file3466 behaves like source trace in ChunkedIO stays intact3467 is expected to eq "BUILD TRACE"3468 when job has trace artifact3469 does not archive3470 when live trace chunks still exist3471 removes the traces3472 when job is not finished yet3473 does not archive3474 #erase!3475 when it is a live trace3476 is expected not to be nil3477 removes trace3478 when it is an archived trace3479 has trace at first3480 removes trace3481 #update_interval3482 it is not being watched3483 is expected to eq 60 seconds3484 it is being watched3485 returns 3 seconds3486 #being_watched!3487 sets gitlab:ci:trace:<job.id>:watched in redis3488 updates the expiry of gitlab:ci:trace:<job.id>:watched in redis3489 #being_watched?3490 gitlab:ci:trace:<job.id>:watched in redis is set3491 returns true3492 gitlab:ci:trace:<job.id>:watched in redis is not set3493 returns false3494 #lock3495 acquires an exclusive lease on the trace3496 #can_attempt_archival_now?3497 creates the record and returns true3498 #increment_archival_attempts!3499 creates the record and increments its value3500DesignManagement::DesignAtVersion3501 #id3502 combines design.id and version.id3503 #==3504 identifies objects created with the same parameters as equal3505 identifies unequal objects as unequal, by virtue of their version3506 identifies unequal objects as unequal, by virtue of their design3507 rejects objects with the same id and the wrong class3508 expects objects to be of the same type, not subtypes3509 status methods3510 a design before it has been created3511 is not deleted3512 has the status :not_created_yet3513 a design as of its creation3514 is not deleted3515 has the status :current3516 a design after it has been created, but before deletion3517 is not deleted3518 has the status :current3519 a design as of its modification3520 is not deleted3521 has the status :current3522 a design as of its deletion3523 is deleted3524 has the status :deleted3525 a design after its deletion3526 is deleted3527 has the status :deleted3528 a design on its recreation3529 is not deleted3530 has the status :current3531 validations3532 is expected to be valid3533 a design-at-version without a design3534 is expected to be invalid3535 mentions the design in the errors3536 a design-at-version without a version3537 is expected to be invalid3538 mentions the version in the errors3539 design_and_version_belong_to_the_same_issue3540 both design and version are supplied3541 the design belongs to the same issue as the version3542 is expected to be valid3543 the design does not belong to the same issue as the version3544 is expected to be invalid3545 the factory is just supplied with a design3546 is expected to be valid3547 the factory is just supplied with a version3548 is expected to be valid3549 design_and_version_have_issue_id3550 the design has no issue_id, because it is being imported3551 is expected to be invalid3552 the version has no issue_id, because it is being imported3553 is expected to be invalid3554 both the design and the version are being imported3555 is expected to be invalid3556 .lazy_find3557 issues fewer queries than the naive approach would3558 .find3559 invalid ids3560 #count3561 counts 0 records3562 #empty?3563 is empty3564 #to_a3565 finds no records3566 valid ids3567 #count3568 counts 2 records3569 issues at most two queries3570 #to_a3571 finds 6 records3572 only returns records with matching IDs3573 only returns valid records3574 issues at most two queries3575Gitlab::Git::Blob3576 initialize3577 handles nil data3578 records blob size3579 when untruncated3580 attempts to record gitlab_blob_truncated_false3581 when truncated3582 attempts to record gitlab_blob_truncated_true3583 .find with Gitaly enabled3584 behaves like .find3585 nil path3586 is expected to eq nil3587 utf-8 branch3588 is expected to eq "7e3e39ebb9b2bf433b4ad17313770fbe4051649c"3589 blank path3590 is expected to eq nil3591 file in subdir3592 is expected to eq "7e3e39ebb9b2bf433b4ad17313770fbe4051649c"3593 is expected to eq "popen.rb"3594 is expected to eq "files/ruby/popen.rb"3595 is expected to eq "b83d6e391c22777fca1ed3012fce84f633d7fed0"3596 is expected to eq "require 'fi"3597 is expected to eq 6693598 is expected to eq "100644"3599 file in root3600 is expected to eq "dfaa3f97ca337e20154a98ac9d0be76ddd1fcc82"3601 is expected to eq ".gitignore"3602 is expected to eq ".gitignore"3603 is expected to eq "b83d6e391c22777fca1ed3012fce84f633d7fed0"3604 is expected to eq "*.rbc\n*.sas"3605 is expected to eq 2413606 is expected to eq "100644"3607 is expected not to be binary in repo3608 file in root with leading slash3609 is expected to eq "dfaa3f97ca337e20154a98ac9d0be76ddd1fcc82"3610 is expected to eq ".gitignore"3611 is expected to eq ".gitignore"3612 is expected to eq "b83d6e391c22777fca1ed3012fce84f633d7fed0"3613 is expected to eq "*.rbc\n*.sas"3614 is expected to eq 2413615 is expected to eq "100644"3616 non-exist file3617 is expected to be nil3618 six submodule3619 is expected to eq "409f37c4f05865e4fb208c771485f211a22c4c2d"3620 is expected to eq ""3621 does not get messed up by load_all_data!3622 does not mark the blob as binary3623 large file3624 is expected to eq 1118033625 is expected to eq 10003626 check that this test is sane3627 can load all data3628 marks the blob as binary3629 .find with Rugged enabled3630 calls out to the Rugged implementation3631 behaves like .find3632 nil path3633 is expected to eq nil3634 utf-8 branch3635 is expected to eq "7e3e39ebb9b2bf433b4ad17313770fbe4051649c"3636 blank path3637 is expected to eq nil3638 file in subdir3639 is expected to eq "7e3e39ebb9b2bf433b4ad17313770fbe4051649c"3640 is expected to eq "popen.rb"3641 is expected to eq "files/ruby/popen.rb"3642 is expected to eq "b83d6e391c22777fca1ed3012fce84f633d7fed0"3643 is expected to eq "require 'fi"3644 is expected to eq 6693645 is expected to eq "100644"3646 file in root3647 is expected to eq "dfaa3f97ca337e20154a98ac9d0be76ddd1fcc82"3648 is expected to eq ".gitignore"3649 is expected to eq ".gitignore"3650 is expected to eq "b83d6e391c22777fca1ed3012fce84f633d7fed0"3651 is expected to eq "*.rbc\n*.sas"3652 is expected to eq 2413653 is expected to eq "100644"3654 is expected not to be binary in repo3655 file in root with leading slash3656 is expected to eq "dfaa3f97ca337e20154a98ac9d0be76ddd1fcc82"3657 is expected to eq ".gitignore"3658 is expected to eq ".gitignore"3659 is expected to eq "b83d6e391c22777fca1ed3012fce84f633d7fed0"3660 is expected to eq "*.rbc\n*.sas"3661 is expected to eq 2413662 is expected to eq "100644"3663 non-exist file3664 is expected to be nil3665 six submodule3666 is expected to eq "409f37c4f05865e4fb208c771485f211a22c4c2d"3667 is expected to eq ""3668 does not get messed up by load_all_data!3669 does not mark the blob as binary3670 large file3671 is expected to eq 1118033672 is expected to eq 10003673 check that this test is sane3674 can load all data3675 marks the blob as binary3676 .raw3677 is expected to eq "7e3e39ebb9b2bf433b4ad17313770fbe4051649c"3678 is expected to eq "require 'fi"3679 is expected to eq 6693680 is expected to be falsey3681 is expected to be nil3682 .batch3683 is expected to eq 23684 first blob3685 is expected to eq "7e3e39ebb9b2bf433b4ad17313770fbe4051649c"3686 is expected to eq "popen.rb"3687 is expected to eq "files/ruby/popen.rb"3688 is expected to eq "b83d6e391c22777fca1ed3012fce84f633d7fed0"3689 is expected to eq "require 'fi"3690 is expected to eq 6693691 is expected to eq "100644"3692 second blob3693 is expected to eq "409f37c4f05865e4fb208c771485f211a22c4c2d"3694 is expected to eq ""3695 does not mark the blob as binary3696 limiting3697 positive3698 is expected to eq 103699 zero3700 only loads the metadata3701 negative3702 ignores MAX_DATA_DISPLAY_SIZE3703 when large number of blobs requested3704 fetches the blobs in batches3705 .batch_metadata3706 returns an empty data attribute3707 .batch_lfs_pointers3708 returns a list of Gitlab::Git::Blob3709 accepts blob IDs as a lazy enumerator3710 handles empty list of IDs gracefully3711 silently ignores non lfs objects3712 avoids loading large blobs into memory3713 encoding3714 file with russian text3715 has the correct blob attributes3716 file with Japanese text3717 has the correct blob attributes3718 file with ISO-8859 text3719 has the correct blob attributes3720 mode3721 file regular3722 is expected to eq "regex.rb"3723 is expected to eq "files/ruby/regex.rb"3724 is expected to eq 12003725 is expected to eq "100644"3726 file binary3727 is expected to eq "ls"3728 is expected to eq "files/executables/ls"3729 is expected to eq 233730 is expected to eq "100755"3731 file symlink to regular3732 is expected to eq "symlink"3733 is expected to eq "symlink"3734 is expected to eq 63735 is expected to eq "120000"3736 lfs_pointers3737 file a valid lfs pointer3738 is expected to eq true3739 is expected to eq "96f74c6fe7a2979eefb9ec74a5dfc6888fb25543cf99b77586b79afea1da6f97"3740 is expected to eq 12196963741 is expected to eq "ff0ab3afd1616ff78d0331865d922df103b64cf0"3742 is expected to eq "emoji.png"3743 is expected to eq "files/images/emoji.png"3744 is expected to eq 1323745 is expected to eq "100644"3746 #load_all_data!3747 loads missing data3748 with a fully loaded blob3749 doesn't perform any loading3750 #truncated?3751 when blob.size is nil3752 returns false3753 when blob.data is missing3754 returns false3755 when the blob is truncated3756 returns true3757 when the blob is untruncated3758 returns false3759 metrics3760 defines :gitlab_blob_truncated_true counter3761 defines :gitlab_blob_truncated_false counter3762 defines :gitlab_blob_size histogram3763 #lines3764 when the encoding cannot be detected3765 successfully splits the data3766MergeRequestTargetProjectFinder3767 public projects3768 behaves like finding related projects3769 finds sibling projects and base project3770 does not include projects that have merge requests turned off by default3771 includes projects that have merge requests turned off by default with a more-permissive project feature3772 does not contain archived projects3773 does not include routes by default3774 includes routes when requested3775 private projects3776 only finds the projects the user is a member of3777 when the user is a member of all projects3778 behaves like finding related projects3779 finds sibling projects and base project3780 does not include projects that have merge requests turned off by default3781 includes projects that have merge requests turned off by default with a more-permissive project feature3782 does not contain archived projects3783 does not include routes by default3784 includes routes when requested3785 searching3786 returns all projects with empty search3787 returns forked project with search string3788 returns no projects with search for project that does no exist3789User TokenAuthenticatable3790 behaves like TokenAuthenticatable3791 dynamically defined methods3792 is expected to respond to #find_by_feed_token3793 is expected to respond to #ensure_feed_token3794 is expected to respond to #set_feed_token3795 is expected to respond to #reset_feed_token!3796 SensitiveSerializableHash3797 includes the token field in list of sensitive attributes prevented from serialization3798 ensures authentication token3799 is expected to be a kind of String3800ApplicationSetting TokenAuthenticatable3801 behaves like TokenAuthenticatable3802 dynamically defined methods3803 is expected to respond to #find_by_runners_registration_token3804 is expected to respond to #ensure_runners_registration_token3805 is expected to respond to #set_runners_registration_token3806 is expected to respond to #reset_runners_registration_token!3807 SensitiveSerializableHash3808 includes the token field in list of sensitive attributes prevented from serialization3809 generating new token3810 token is not generated yet3811 token field accessor3812 is expected not to be blank3813 ensure_runners_registration_token3814 is expected to be a kind of String3815 is expected not to be blank3816 does not persist token3817 ensure_runners_registration_token!3818 persists new token as an encrypted string3819 does not persist token in a clear text3820 token is generated3821 persists a new token3822 setting new token3823 is expected to eq "0123456789"3824 multiple token fields3825 is expected to respond to #ensure_runners_registration_token3826 is expected to respond to #ensure_error_tracking_access_token3827 is expected to respond to #ensure_yet_another_token3828 setting same token field multiple times3829 raises error3830PersonalAccessToken TokenAuthenticatable3831 .find_by_token3832 finds the token3833 #set_token3834 sets new token3835 #ensure_token3836 token_digest does not exist3837 behaves like changes personal access token3838 sets new token3839 token_digest already generated3840 behaves like does not change personal access token3841 sets new token3842 #ensure_token!3843 token_digest does not exist3844 behaves like changes personal access token3845 sets new token3846 token_digest already generated3847 behaves like does not change personal access token3848 sets new token3849 #reset_token!3850 token_digest does not exist3851 behaves like changes personal access token3852 sets new token3853 token_digest already generated3854 behaves like changes personal access token3855 sets new token3856Ci::Build TokenAuthenticatable3857 behaves like TokenAuthenticatable3858 dynamically defined methods3859 is expected to respond to #find_by_token3860 is expected to respond to #ensure_token3861 is expected to respond to #set_token3862 is expected to respond to #reset_token!3863 SensitiveSerializableHash3864 includes the token field in list of sensitive attributes prevented from serialization3865 generating new token3866 token is not generated yet3867 token field accessor3868 does not generate a token when saving a build3869 ensure_token3870 is expected to be a kind of String3871 is expected not to be blank3872 does not persist token3873 ensure_token!3874 persists a new token3875 persists new token as an encrypted string3876 does not persist a token in a clear text3877 #reset_token!3878 persists a new token3879 setting a new token3880 returns the token3881 writes a new encrypted token3882 does not write a new cleartext token3883 #token_with_expiration3884 #expirable?3885 is expected to eq false3886Ci::Runner TokenAuthenticatable3887 #token_expired?3888 when runner has no token expiration3889 is expected to eq false3890 when runner token is not expired3891 is expected to eq false3892 when runner token is expired3893 is expected to eq true3894 #token_with_expiration3895 #token3896 is expected to eq "Y9Jqyspm6wdg5SJqoZzu"3897 #token_expires_at3898 is expected to eq 2023-10-20 08:50:54.727728673 +00003899 #expirable?3900 is expected to eq true3901 .find_by_token3902 when runner has no token expiration3903 is expected to eq #<Ci::Runner id: 71, token: nil, created_at: "2023-10-20 08:50:49.704469805 +0000", updated_at: "2023...at: nil, allowed_plans: [], registration_type: "registration_token", creator_id: nil, tag_list: nil>3904 when runner token is not expired3905 is expected to eq #<Ci::Runner id: 72, token: nil, created_at: "2023-10-20 08:50:49.721486613 +0000", updated_at: "2023... +0000", allowed_plans: [], registration_type: "registration_token", creator_id: nil, tag_list: nil>3906 when runner token is expired3907 is expected to be nil3908Project TokenAuthenticatable3909 behaves like prefixed token rotation3910 ensure_runners_token3911 token is not set3912 generates a new token3913 token is set, but does not match the prefix3914 generates a new token3915 token is set and matches prefix3916 leaves the token unchanged3917 ensure_runners_token!3918 token is not set3919 generates a new token3920 token is set, but does not match the prefix3921 generates a new token3922 token is set and matches prefix3923 leaves the token unchanged3924Group TokenAuthenticatable3925 behaves like prefixed token rotation3926 ensure_runners_token3927 token is not set3928 generates a new token3929 token is set, but does not match the prefix3930 generates a new token3931 token is set and matches prefix3932 leaves the token unchanged3933 ensure_runners_token!3934 token is not set3935 generates a new token3936 token is set, but does not match the prefix3937 generates a new token3938 token is set and matches prefix3939 leaves the token unchanged3940ResourceLabelEvent3941 behaves like having unique enum values3942 has unique values in "action"3943 behaves like a resource event3944 importable3945 is expected to respond to #importing?3946 is expected to respond to #imported?3947 validations3948 is expected not to allow :user to be ‹nil›3949 when importing3950 is expected to allow :user to be ‹nil›3951 associations3952 is expected to belong to user required: false3953 .created_after3954 returns the expected events3955 returns no events if time is after last record time3956 behaves like a resource event for issues3957 associations3958 is expected to belong to issue required: false3959 .by_issue3960 returns the expected records for an issue with events3961 returns the expected records for an issue with no events3962 .by_issue_ids3963 returns the expected events3964 .by_created_at_earlier_or_equal_to3965 returns the expected events3966 returns the expected events3967 #issuable3968 returns the expected issuable3969 behaves like a resource event for merge requests3970 associations3971 is expected to belong to merge_request required: false3972 .by_merge_request3973 returns the expected records for an issue with events3974 returns the expected records for an issue with no events3975 #issuable3976 returns the expected issuable3977 on callbacks3978 does not trigger note created subscription3979 behaves like a note for work item resource event3980 builds synthetic note with correct synthetic_note_class3981 on callbacks3982 triggers note created subscription3983 associations3984 is expected to belong to label required: false3985 validations3986 is expected to be valid3987 Issuable validation3988 is invalid if issue_id and merge_request_id are missing3989 is invalid if issue_id and merge_request_id are set3990 is valid if only issue_id is set3991 is valid if only merge_request_id is set3992 callbacks3993 #broadcast_notes_changed3994 broadcasts note change on event save3995 broadcasts note change on event destroy3996 #outdated_markdown?3997 returns true if label is missing and reference is not empty3998 returns true if reference is not set yet3999 returns true if markdown is outdated4000 returns false if label and reference are set4001 .visible_to_user?4002 returns events with labels accessible by user4003 filters events with public project labels if issues and MRs are private4004 filters events with project labels not accessible by user4005 filters events with group labels not accessible by user4006 #discussion_id4007 generates different discussion ID for events created milliseconds apart4008 with multiple label events4009 builds synthetic note4010GroupMemberPolicy4011 with anonymous user4012 is expected to be allowed :read_group4013 design management is enabled4014 is expected to be allowed :read_design_activity4015 for a private group4016 is expected not to be allowed :destroy_group_member4017 for an internal group4018 is expected not to be allowed :destroy_group_member4019 with guest user, for own membership4020 is expected not to be allowed :update_group_member4021 is expected to be allowed :destroy_group_member4022 with guest user, for other membership4023 is expected not to be allowed :update_group_member4024 is expected to be allowed :read_group4025 for access requests4026 for own access request4027 is expected to be allowed :withdraw_member_access_request4028 for another user's access request4029 is expected not to be allowed :withdraw_member_access_request4030 for own, valid membership4031 is expected not to be allowed :withdraw_member_access_request4032 with bot user4033 is expected to be allowed :destroy_project_bot_member4034 with anonymous bot user4035 is expected not to be allowed :destroy_project_bot_member4036 with owner4037 with group with one owner4038 is expected not to be allowed :destroy_group_member4039 is expected to be allowed :read_group4040 with group with bot user owner4041 is expected not to be allowed :destroy_group_member4042 with group with more than one owner4043 is expected to be allowed :destroy_group_member4044 is expected not to be allowed :destroy_project_bot_member4045 with group with owners from a parent4046 when top-level group4047 with group sharing4048 is expected not to be allowed :destroy_group_member4049 is expected to be allowed :read_group4050 when subgroup4051 is expected to be allowed :destroy_group_member4052 is expected to be allowed :read_group4053 with blocked owner4054 is expected not to be allowed :destroy_group_member4055 is expected not to be allowed :read_group4056 with group with bot user owner4057 is expected not to be allowed :destroy_group_member4058 is expected not to be allowed :read_group4059 with group with more than one blocked owner4060 is expected to be allowed :destroy_group_member4061Gitlab::RelativePositioning::ItemContext4062 there are gaps at the start and end4063 is always possible to find a gap4064 index: 44065 is possible to shift_right, which will consume the gap at the end4066 is possible to create_space_right, which will move the gap to immediately after4067 is possible to shift_left, which will consume the gap at the start4068 is possible to create_space_left, which will move the gap to immediately before4069 index: 34070 is possible to shift_right, which will consume the gap at the end4071 is possible to create_space_right, which will move the gap to immediately after4072 is possible to shift_left, which will consume the gap at the start4073 is possible to create_space_left, which will move the gap to immediately before4074 index: 24075 is possible to shift_right, which will consume the gap at the end4076 is possible to create_space_right, which will move the gap to immediately after4077 is possible to shift_left, which will consume the gap at the start4078 is possible to create_space_left, which will move the gap to immediately before4079 index: 14080 is possible to shift_right, which will consume the gap at the end4081 is possible to create_space_right, which will move the gap to immediately after4082 is possible to shift_left, which will consume the gap at the start4083 is possible to create_space_left, which will move the gap to immediately before4084 index: 04085 is possible to shift_right, which will consume the gap at the end4086 is possible to create_space_right, which will move the gap to immediately after4087 is possible to shift_left, which will consume the gap at the start4088 is possible to create_space_left, which will move the gap to immediately before4089 there is a gap of multiple spaces4090 is impossible to move the last element to the right4091 is impossible to move the first element to the left4092 is possible to move the last element to the left4093 is possible to move the first element to the right4094 is possible to find the gap from the right4095 is possible to find the gap from the left4096 there are several free spaces4097 current_pos: 1024098 finds the closest gap4099 finds the neighbours4100 finds the next relative_positions4101 finds the min/max positions4102 finds the min/max siblings4103 current_pos: 1044104 finds the closest gap4105 finds the neighbours4106 finds the next relative_positions4107 finds the min/max positions4108 finds the min/max siblings4109 current_pos: 1064110 finds the closest gap4111 finds the neighbours4112 finds the next relative_positions4113 finds the min/max positions4114 finds the min/max siblings4115 there is at least one free space4116 free_space: 1014117 can always find a gap before if there is space to the left4118 can always find a gap after if there is space to the right4119 free_space: 1024120 can always find a gap before if there is space to the left4121 can always find a gap after if there is space to the right4122 free_space: 1034123 can always find a gap before if there is space to the left4124 can always find a gap after if there is space to the right4125 free_space: 1044126 can always find a gap before if there is space to the left4127 can always find a gap after if there is space to the right4128 free_space: 1054129 can always find a gap before if there is space to the left4130 can always find a gap after if there is space to the right4131 free_space: 1064132 can always find a gap before if there is space to the left4133 can always find a gap after if there is space to the right4134 free_space: 1074135 can always find a gap before if there is space to the left4136 can always find a gap after if there is space to the right4137 #at_position4138 finds the item at the specified position4139 raises InvalidPosition when the item cannot be found4140Ci::BuildDependencies4141 for local dependencies4142 jobs from previous stages4143 when job is in the first stage4144 is expected to be empty4145 when job is in the second stage4146 contains all jobs from the first stage4147 when job is in the last stage4148 contains all jobs from all previous stages4149 when a job is retried4150 contains the retried job instead of the original one4151 when needs refer to jobs from the same stage4152 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>4153 jobs from specified dependencies4154 when dependencies are defined4155 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>4156 when needs are defined4157 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>4158 when need artifacts are defined4159 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>4160 when needs and dependencies are defined4161 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>4162 when needs and dependencies contradict4163 returns only the intersection4164 when nor dependencies or needs are defined4165 returns the jobs from previous stages4166 for cross_pipeline dependencies4167 when dependency specifications are valid4168 when pipeline exists in the hierarchy4169 when job exists4170 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>4171 is expected to be valid4172 when pipeline and job are specified via variables4173 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>4174 is expected to be valid4175 when same job names exist in other pipelines in the hierarchy4176 returns a limited number of dependencies with the right match4177 when job does not exist4178 is expected to be empty4179 is expected not to be valid4180 when pipeline does not exist4181 is expected to be empty4182 is expected not to be valid4183 when jobs exist in different pipelines in the hierarchy4184 when pipeline and jobs dependencies are mismatched4185 is expected to be empty4186 is expected not to be valid4187 when dependencies contain a valid pair4188 filters out the invalid ones4189 is expected not to be valid4190 when job and pipeline exist outside the hierarchy4191 ignores jobs outside the pipeline hierarchy4192 is expected not to be valid4193 when current pipeline is specified4194 ignores jobs from the current pipeline as simple needs should be used instead4195 is expected not to be valid4196 when artifacts:false4197 is expected to be empty4198 is expected to be valid4199 #all4200 returns the union of all local dependencies and any cross project dependencies4201 #valid?4202 is expected to eq true4203 when a local dependency is invalid4204 is expected to eq false4205Backup::Manager4206 #run_create_task4207 calls the named task4208 disabled4209 informs the user4210 skipped4211 informs the user4212 #run_restore_task4213 calls the named task4214 disabled4215 informs the user4216 pre_restore_warning4217 displays and waits for the user4218 does not continue when the user quits4219 post_restore_warning4220 displays and waits for the user4221 does not continue when the user quits4222 #create4223 creates a backup tar4224 when BACKUP is set4225 uses the given value as tar file name4226 tar fails4227 logs a failure4228 when SKIP env is set4229 executes tar4230 when the destination is optional4231 executes tar4232 many backup files4233 when keep_time is zero4234 removes no files4235 prints a skipped message4236 when no valid file is found4237 removes no files4238 prints a done message4239 when there are no files older than keep_time4240 removes no files4241 prints a done message4242 when keep_time is set to remove files4243 removes matching files with a human-readable versioned timestamp4244 removes matching files with a human-readable versioned timestamp with tagged EE4245 removes matching files with a human-readable non-versioned timestamp4246 removes matching files without a human-readable timestamp4247 does not remove files that are not old enough4248 does not remove non-matching files4249 prints a done message4250 when removing a file fails4251 removes the remaining expected files4252 sets the correct removed count4253 prints the error from file that could not be removed4254 cloud storage4255 skipped upload4256 informs the user4257 target path4258 uses the tar filename by default4259 adds the DIRECTORY environment variable if present4260 with AWS with server side encryption4261 with SSE-S3 without using storage_options4262 sets encryption attributes4263 with SSE-C (customer-provided keys) options4264 sets encryption attributes4265 with SSE-KMS options4266 sets encryption attributes4267 with Google provider4268 does not attempt to set ACL4269 with AzureRM provider4270 loads the provider4271 tar skipped4272 creates a non-tarred backup4273 incremental4274 when there are no backup files in the directory4275 fails the operation and prints an error4276 when there are two backup files in the directory and BACKUP variable is not set4277 prints the list of available backups4278 fails the operation and prints an error4279 when BACKUP variable is set to a non-existing file4280 fails the operation and prints an error4281 when BACKUP variable is set to a correct file4282 unpacks and packs the backup4283 untar fails4284 logs a failure4285 tar fails4286 logs a failure4287 on version mismatch4288 stops the process4289 when PREVIOUS_BACKUP variable is set to a non-existing file4290 fails the operation and prints an error4291 when PREVIOUS_BACKUP variable is set to a correct file4292 unpacks and packs the backup4293 untar fails4294 logs a failure4295 tar fails4296 logs a failure4297 on version mismatch4298 stops the process4299 when there is a non-tarred backup in the directory4300 updates the non-tarred backup4301 on version mismatch4302 stops the process4303 #restore4304 when there are no backup files in the directory4305 fails the operation and prints an error4306 when there are two backup files in the directory and BACKUP variable is not set4307 prints the list of available backups4308 fails the operation and prints an error4309 when BACKUP variable is set to a non-existing file4310 fails the operation and prints an error4311 when BACKUP variable is set to a correct file4312 unpacks the file4313 tar fails4314 logs a failure4315 on version mismatch4316 stops the process4317 when there is a non-tarred backup in the directory4318 selects the non-tarred backup to restore from4319 on version mismatch4320 stops the process4321Milestones::TransferService4322 #execute4323 when old_group is present4324 without existing milestone at the new group level4325 recreates the missing group milestones at project level4326 applies new project milestone to issues with group milestone4327 deletes milestone counters cache for both milestones4328 does not apply new project milestone to issues with project milestone4329 applies new project milestone to merge_requests with group milestone4330 does not apply new project milestone to issuables with project milestone4331 does not recreate missing group milestones that are not applied to issues or merge requests4332 when milestone is from an ancestor group4333 recreates the missing group milestones at project level4334 when find_or_create_milestone returns nil4335 removes issues group milestone4336 removes merge requests group milestone4337 with existing milestone at the new group level4338 does not create a new milestone4339 applies existing milestone to issues with group milestone4340 applies existing milestone to merge_requests with group milestone4341 when old_group is not present4342 returns nil4343WorkItems::ParentLinks::CreateService4344 #execute4345 when the reference list is empty4346 behaves like returns not found error4347 returns error4348 no relationship is created4349 when work item not found4350 behaves like returns not found error4351 returns error4352 no relationship is created4353 when user has no permission to link work items4354 behaves like returns not found error4355 returns error4356 no relationship is created4357 child and parent are the same work item4358 no relationship is created4359 when adjacent is already in place4360 adjacent_position: -100, expected_order: lazy { [adjacent, current_item] }4361 sets relative positions4362 adjacent_position: 0, expected_order: lazy { [adjacent, current_item] }4363 sets relative positions4364 adjacent_position: 100, expected_order: lazy { [adjacent, current_item] }4365 sets relative positions4366 when there are tasks to relate4367 creates relationships4368 returns success status and created links4369 creates notes and records the events4370 when note creation fails for some reason4371 still records the link event4372 still records the link event4373 when task is already assigned4374 creates links only for non related tasks4375 when there are invalid children4376 creates links only for valid children4377 returns error status4378 creates notes for valid links4379 when parent type is invalid4380 returns error status4381 when max depth is reached4382 returns error status4383 when params include invalid ids4384 creates links only for valid IDs4385 when user is a guest4386 behaves like returns not found error4387 returns error4388 no relationship is created4389 when user is a guest assigned to the work item4390 behaves like returns not found error4391 returns error4392 no relationship is created4393Packages::Nuget::SearchService4394 #execute4395 with project4396 behaves like handling all the conditions4397 is expected to contain exactly #<Packages::Package id: 237, project_id: 647, created_at: "2023-10-20 08:53:28.105481000 +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:53:28.137318490 +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:53:28.164855677 +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:53:28.194105265 +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:53:28.222616062 +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:53:28.249113890 +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:53:28.277806197 +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:53:28.303122135 +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:53:28.327778403 +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:53:28.351610931 +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:53:28.376492788 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>4398 with a smaller per page count4399 is expected to contain exactly #<Packages::Package id: 237, project_id: 647, created_at: "2023-10-20 08:53:28.105481000 +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:53:28.137318490 +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:53:28.164855677 +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:53:28.194105265 +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:53:28.222616062 +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:53:28.249113890 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>4400 with 0 per page count4401 is expected to contain exactly4402 with a negative per page count4403 is expected to raise ArgumentError with "negative per_page"4404 with a padding4405 is expected to contain exactly #<Packages::Package id: 243, project_id: 647, created_at: "2023-10-20 08:53:28.277806197 +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:53:28.303122135 +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:53:28.327778403 +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:53:28.351610931 +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:53:28.376492788 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>4406 with a too big padding4407 is expected to contain exactly4408 with a negative padding4409 is expected to raise ArgumentError with "negative padding"4410 with search term4411 is expected to contain exactly #<Packages::Package id: 237, project_id: 647, created_at: "2023-10-20 08:53:28.105481000 +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:53:28.137318490 +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:53:28.164855677 +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:53:28.194105265 +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:53:28.222616062 +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:53:28.249113890 +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:53:28.277806197 +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:53:28.303122135 +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:53:28.327778403 +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:53:28.351610931 +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:53:28.376492788 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>4412 with nil search term4413 is expected to contain exactly #<Packages::Package id: 237, project_id: 647, created_at: "2023-10-20 08:53:28.105481000 +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:53:28.137318490 +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:53:28.164855677 +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:53:28.194105265 +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:53:28.222616062 +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:53:28.249113890 +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:53:28.277806197 +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:53:28.303122135 +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:53:28.327778403 +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:53:28.351610931 +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:53:28.376492788 +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:53:28.402110046 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>4414 with empty search term4415 is expected to contain exactly #<Packages::Package id: 237, project_id: 647, created_at: "2023-10-20 08:53:28.105481000 +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:53:28.137318490 +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:53:28.164855677 +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:53:28.194105265 +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:53:28.222616062 +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:53:28.249113890 +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:53:28.277806197 +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:53:28.303122135 +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:53:28.327778403 +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:53:28.351610931 +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:53:28.376492788 +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:53:28.402110046 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>4416 with non-displayable packages4417 is expected to contain exactly #<Packages::Package id: 238, project_id: 647, created_at: "2023-10-20 08:53:28.137318490 +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:53:28.164855677 +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:53:28.194105265 +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:53:28.222616062 +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:53:28.249113890 +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:53:28.277806197 +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:53:28.303122135 +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:53:28.327778403 +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:53:28.351610931 +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:53:28.376492788 +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:53:28.402110046 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>4418 with prefix search term4419 is expected to contain exactly #<Packages::Package id: 237, project_id: 647, created_at: "2023-10-20 08:53:28.105481000 +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:53:28.137318490 +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:53:28.164855677 +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:53:28.194105265 +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:53:28.222616062 +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:53:28.249113890 +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:53:28.277806197 +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:53:28.303122135 +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:53:28.327778403 +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:53:28.351610931 +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:53:28.376492788 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>4420 with suffix search term4421 is expected to contain exactly #<Packages::Package id: 243, project_id: 647, created_at: "2023-10-20 08:53:28.277806197 +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:53:28.303122135 +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:53:28.327778403 +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:53:28.351610931 +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:53:28.376492788 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>4422 with pre release packages4423 including them4424 is expected to contain exactly #<Packages::Package id: 237, project_id: 647, created_at: "2023-10-20 08:53:28.105481000 +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:53:28.137318490 +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:53:28.164855677 +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:53:28.194105265 +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:53:28.222616062 +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:53:28.249113890 +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:53:28.277806197 +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:53:28.303122135 +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:53:28.327778403 +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:53:28.351610931 +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:53:28.376492788 +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:53:32.870412528 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>4425 excluding them4426 is expected to contain exactly #<Packages::Package id: 237, project_id: 647, created_at: "2023-10-20 08:53:28.105481000 +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:53:28.137318490 +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:53:28.164855677 +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:53:28.194105265 +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:53:28.222616062 +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:53:28.249113890 +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:53:28.277806197 +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:53:28.303122135 +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:53:28.327778403 +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:53:28.351610931 +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:53:28.376492788 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>4427 when mixed with release versions4428 is expected to contain exactly #<Packages::Package id: 237, project_id: 647, created_at: "2023-10-20 08:53:28.105481000 +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:53:28.137318490 +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:53:28.164855677 +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:53:28.194105265 +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:53:28.222616062 +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:53:28.249113890 +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:53:28.277806197 +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:53:28.303122135 +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:53:28.327778403 +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:53:28.351610931 +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:53:28.376492788 +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:53:33.443210226 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>4429 with subgroup4430 behaves like handling all the conditions4431 is expected to contain exactly #<Packages::Package id: 237, project_id: 647, created_at: "2023-10-20 08:53:28.105481000 +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:53:28.137318490 +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:53:28.164855677 +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:53:28.194105265 +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:53:28.222616062 +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:53:28.249113890 +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:53:28.277806197 +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:53:28.303122135 +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:53:28.327778403 +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:53:28.351610931 +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:53:28.376492788 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>4432 with a smaller per page count4433 is expected to contain exactly #<Packages::Package id: 237, project_id: 647, created_at: "2023-10-20 08:53:28.105481000 +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:53:28.137318490 +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:53:28.164855677 +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:53:28.194105265 +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:53:28.222616062 +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:53:28.249113890 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>4434 with 0 per page count4435 is expected to contain exactly4436 with a negative per page count4437 is expected to raise ArgumentError with "negative per_page"4438 with a padding4439 is expected to contain exactly #<Packages::Package id: 243, project_id: 647, created_at: "2023-10-20 08:53:28.277806197 +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:53:28.303122135 +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:53:28.327778403 +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:53:28.351610931 +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:53:28.376492788 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>4440 with a too big padding4441 is expected to contain exactly4442 with a negative padding4443 is expected to raise ArgumentError with "negative padding"4444 with search term4445 is expected to contain exactly #<Packages::Package id: 237, project_id: 647, created_at: "2023-10-20 08:53:28.105481000 +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:53:28.137318490 +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:53:28.164855677 +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:53:28.194105265 +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:53:28.222616062 +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:53:28.249113890 +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:53:28.277806197 +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:53:28.303122135 +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:53:28.327778403 +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:53:28.351610931 +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:53:28.376492788 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>4446 with nil search term4447 is expected to contain exactly #<Packages::Package id: 237, project_id: 647, created_at: "2023-10-20 08:53:28.105481000 +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:53:28.137318490 +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:53:28.164855677 +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:53:28.194105265 +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:53:28.222616062 +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:53:28.249113890 +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:53:28.277806197 +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:53:28.303122135 +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:53:28.327778403 +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:53:28.351610931 +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:53:28.376492788 +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:53:28.402110046 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>4448 with empty search term4449 is expected to contain exactly #<Packages::Package id: 237, project_id: 647, created_at: "2023-10-20 08:53:28.105481000 +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:53:28.137318490 +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:53:28.164855677 +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:53:28.194105265 +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:53:28.222616062 +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:53:28.249113890 +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:53:28.277806197 +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:53:28.303122135 +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:53:28.327778403 +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:53:28.351610931 +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:53:28.376492788 +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:53:28.402110046 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>4450 with non-displayable packages4451 is expected to contain exactly #<Packages::Package id: 238, project_id: 647, created_at: "2023-10-20 08:53:28.137318490 +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:53:28.164855677 +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:53:28.194105265 +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:53:28.222616062 +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:53:28.249113890 +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:53:28.277806197 +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:53:28.303122135 +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:53:28.327778403 +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:53:28.351610931 +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:53:28.376492788 +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:53:28.402110046 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>4452 with prefix search term4453 is expected to contain exactly #<Packages::Package id: 237, project_id: 647, created_at: "2023-10-20 08:53:28.105481000 +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:53:28.137318490 +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:53:28.164855677 +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:53:28.194105265 +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:53:28.222616062 +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:53:28.249113890 +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:53:28.277806197 +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:53:28.303122135 +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:53:28.327778403 +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:53:28.351610931 +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:53:28.376492788 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>4454 with suffix search term4455 is expected to contain exactly #<Packages::Package id: 243, project_id: 647, created_at: "2023-10-20 08:53:28.277806197 +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:53:28.303122135 +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:53:28.327778403 +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:53:28.351610931 +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:53:28.376492788 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>4456 with pre release packages4457 including them4458 is expected to contain exactly #<Packages::Package id: 237, project_id: 647, created_at: "2023-10-20 08:53:28.105481000 +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:53:28.137318490 +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:53:28.164855677 +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:53:28.194105265 +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:53:28.222616062 +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:53:28.249113890 +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:53:28.277806197 +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:53:28.303122135 +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:53:28.327778403 +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:53:28.351610931 +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:53:28.376492788 +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:53:38.250838997 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>4459 excluding them4460 is expected to contain exactly #<Packages::Package id: 237, project_id: 647, created_at: "2023-10-20 08:53:28.105481000 +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:53:28.137318490 +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:53:28.164855677 +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:53:28.194105265 +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:53:28.222616062 +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:53:28.249113890 +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:53:28.277806197 +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:53:28.303122135 +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:53:28.327778403 +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:53:28.351610931 +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:53:28.376492788 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>4461 when mixed with release versions4462 is expected to contain exactly #<Packages::Package id: 237, project_id: 647, created_at: "2023-10-20 08:53:28.105481000 +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:53:28.137318490 +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:53:28.164855677 +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:53:28.194105265 +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:53:28.222616062 +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:53:28.249113890 +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:53:28.277806197 +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:53:28.303122135 +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:53:28.327778403 +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:53:28.351610931 +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:53:28.376492788 +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:53:38.943478554 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>4463 with group4464 behaves like handling all the conditions4465 is expected to contain exactly #<Packages::Package id: 237, project_id: 647, created_at: "2023-10-20 08:53:28.105481000 +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:53:28.137318490 +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:53:28.164855677 +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:53:28.194105265 +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:53:28.222616062 +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:53:28.249113890 +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:53:28.277806197 +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:53:28.303122135 +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:53:28.327778403 +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:53:28.351610931 +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:53:28.376492788 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>4466 with a smaller per page count4467 is expected to contain exactly #<Packages::Package id: 237, project_id: 647, created_at: "2023-10-20 08:53:28.105481000 +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:53:28.137318490 +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:53:28.164855677 +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:53:28.194105265 +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:53:28.222616062 +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:53:28.249113890 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>4468 with 0 per page count4469 is expected to contain exactly4470 with a negative per page count4471 is expected to raise ArgumentError with "negative per_page"4472 with a padding4473 is expected to contain exactly #<Packages::Package id: 243, project_id: 647, created_at: "2023-10-20 08:53:28.277806197 +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:53:28.303122135 +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:53:28.327778403 +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:53:28.351610931 +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:53:28.376492788 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>4474 with a too big padding4475 is expected to contain exactly4476 with a negative padding4477 is expected to raise ArgumentError with "negative padding"4478 with search term4479 is expected to contain exactly #<Packages::Package id: 237, project_id: 647, created_at: "2023-10-20 08:53:28.105481000 +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:53:28.137318490 +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:53:28.164855677 +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:53:28.194105265 +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:53:28.222616062 +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:53:28.249113890 +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:53:28.277806197 +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:53:28.303122135 +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:53:28.327778403 +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:53:28.351610931 +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:53:28.376492788 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>4480 with nil search term4481 is expected to contain exactly #<Packages::Package id: 237, project_id: 647, created_at: "2023-10-20 08:53:28.105481000 +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:53:28.137318490 +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:53:28.164855677 +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:53:28.194105265 +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:53:28.222616062 +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:53:28.249113890 +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:53:28.277806197 +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:53:28.303122135 +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:53:28.327778403 +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:53:28.351610931 +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:53:28.376492788 +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:53:28.402110046 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>4482 with empty search term4483 is expected to contain exactly #<Packages::Package id: 237, project_id: 647, created_at: "2023-10-20 08:53:28.105481000 +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:53:28.137318490 +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:53:28.164855677 +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:53:28.194105265 +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:53:28.222616062 +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:53:28.249113890 +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:53:28.277806197 +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:53:28.303122135 +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:53:28.327778403 +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:53:28.351610931 +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:53:28.376492788 +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:53:28.402110046 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>4484 with non-displayable packages4485 is expected to contain exactly #<Packages::Package id: 238, project_id: 647, created_at: "2023-10-20 08:53:28.137318490 +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:53:28.164855677 +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:53:28.194105265 +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:53:28.222616062 +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:53:28.249113890 +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:53:28.277806197 +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:53:28.303122135 +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:53:28.327778403 +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:53:28.351610931 +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:53:28.376492788 +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:53:28.402110046 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>4486 with prefix search term4487 is expected to contain exactly #<Packages::Package id: 237, project_id: 647, created_at: "2023-10-20 08:53:28.105481000 +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:53:28.137318490 +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:53:28.164855677 +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:53:28.194105265 +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:53:28.222616062 +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:53:28.249113890 +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:53:28.277806197 +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:53:28.303122135 +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:53:28.327778403 +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:53:28.351610931 +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:53:28.376492788 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>4488 with suffix search term4489 is expected to contain exactly #<Packages::Package id: 243, project_id: 647, created_at: "2023-10-20 08:53:28.277806197 +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:53:28.303122135 +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:53:28.327778403 +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:53:28.351610931 +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:53:28.376492788 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>4490 with pre release packages4491 including them4492 is expected to contain exactly #<Packages::Package id: 237, project_id: 647, created_at: "2023-10-20 08:53:28.105481000 +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:53:28.137318490 +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:53:28.164855677 +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:53:28.194105265 +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:53:28.222616062 +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:53:28.249113890 +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:53:28.277806197 +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:53:28.303122135 +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:53:28.327778403 +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:53:28.351610931 +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:53:28.376492788 +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:53:43.629465736 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>4493 excluding them4494 is expected to contain exactly #<Packages::Package id: 237, project_id: 647, created_at: "2023-10-20 08:53:28.105481000 +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:53:28.137318490 +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:53:28.164855677 +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:53:28.194105265 +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:53:28.222616062 +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:53:28.249113890 +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:53:28.277806197 +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:53:28.303122135 +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:53:28.327778403 +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:53:28.351610931 +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:53:28.376492788 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>4495 when mixed with release versions4496 is expected to contain exactly #<Packages::Package id: 237, project_id: 647, created_at: "2023-10-20 08:53:28.105481000 +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:53:28.137318490 +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:53:28.164855677 +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:53:28.194105265 +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:53:28.222616062 +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:53:28.249113890 +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:53:28.277806197 +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:53:28.303122135 +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:53:28.327778403 +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:53:28.351610931 +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:53:28.376492788 +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:53:44.396654186 +0000", upda...age_type: "nuget", creator_id: 868, status: "default", last_downloaded_at: nil, status_message: nil>4497Gitlab::PrometheusClient4498 #ping4499 issues a "query" request to the API endpoint4500 #healthy?4501 returns true when status code is 200 and healthy response body4502 returns false when status code is 200 and unhealthy response body4503 raises error when status code not 2004504 #ready?4505 returns true when status code is 2004506 returns false when status code is not 2004507 raises error when ready api throws exception4508 failure to reach a provided prometheus url4509 ping4510 behaves like exceptions are raised4511 raises a Gitlab::PrometheusClient::ConnectionError when a Net::OpenTimeout is rescued4512 raises a Gitlab::PrometheusClient::ConnectionError when a Net::ReadTimeout is rescued4513 raises a Gitlab::PrometheusClient::ConnectionError when a Net::WriteTimeout is rescued4514 raises a Gitlab::PrometheusClient::ConnectionError when a Gitlab::HTTP_V2::ReadTotalTimeout is rescued4515 raises a Gitlab::PrometheusClient::ConnectionError when a EOFError is rescued4516 raises a Gitlab::PrometheusClient::ConnectionError when a SocketError is rescued4517 raises a Gitlab::PrometheusClient::ConnectionError when a OpenSSL::SSL::SSLError is rescued4518 raises a Gitlab::PrometheusClient::ConnectionError when a OpenSSL::OpenSSLError is rescued4519 raises a Gitlab::PrometheusClient::ConnectionError when a Errno::ECONNRESET is rescued4520 raises a Gitlab::PrometheusClient::ConnectionError when a Errno::ECONNREFUSED is rescued4521 raises a Gitlab::PrometheusClient::ConnectionError when a Errno::EHOSTUNREACH is rescued4522 raises a Gitlab::PrometheusClient::ConnectionError when a Errno::ENETUNREACH is rescued4523 raises a Gitlab::PrometheusClient::ConnectionError when a Gitlab::HTTP_V2::BlockedUrlError is rescued4524 raises a Gitlab::PrometheusClient::ConnectionError when a Gitlab::HTTP_V2::RedirectionTooDeep is rescued4525 raises a Gitlab::PrometheusClient::ConnectionError when a Net::HTTPBadResponse is rescued4526 proxy4527 behaves like exceptions are raised4528 raises a Gitlab::PrometheusClient::ConnectionError when a Net::OpenTimeout is rescued4529 raises a Gitlab::PrometheusClient::ConnectionError when a Net::ReadTimeout is rescued4530 raises a Gitlab::PrometheusClient::ConnectionError when a Net::WriteTimeout is rescued4531 raises a Gitlab::PrometheusClient::ConnectionError when a Gitlab::HTTP_V2::ReadTotalTimeout is rescued4532 raises a Gitlab::PrometheusClient::ConnectionError when a EOFError is rescued4533 raises a Gitlab::PrometheusClient::ConnectionError when a SocketError is rescued4534 raises a Gitlab::PrometheusClient::ConnectionError when a OpenSSL::SSL::SSLError is rescued4535 raises a Gitlab::PrometheusClient::ConnectionError when a OpenSSL::OpenSSLError is rescued4536 raises a Gitlab::PrometheusClient::ConnectionError when a Errno::ECONNRESET is rescued4537 raises a Gitlab::PrometheusClient::ConnectionError when a Errno::ECONNREFUSED is rescued4538 raises a Gitlab::PrometheusClient::ConnectionError when a Errno::EHOSTUNREACH is rescued4539 raises a Gitlab::PrometheusClient::ConnectionError when a Errno::ENETUNREACH is rescued4540 raises a Gitlab::PrometheusClient::ConnectionError when a Gitlab::HTTP_V2::BlockedUrlError is rescued4541 raises a Gitlab::PrometheusClient::ConnectionError when a Gitlab::HTTP_V2::RedirectionTooDeep is rescued4542 raises a Gitlab::PrometheusClient::ConnectionError when a Net::HTTPBadResponse is rescued4543 #query4544 when request returns vector results4545 returns data from the API call4546 when request returns matrix results4547 returns nil4548 when request returns no data4549 returns []4550 behaves like failure response4551 when request returns 400 with an error message4552 raises a Gitlab::PrometheusClient::QueryError error4553 when request returns 400 without an error message4554 raises a Gitlab::PrometheusClient::QueryError error4555 when request returns 5004556 raises a Gitlab::PrometheusClient::UnexpectedResponseError error4557 when request returns non json data4558 raises a Gitlab::PrometheusClient::UnexpectedResponseError error4559 #aggregate4560 when request returns vector results4561 returns data from the API call grouped by labels4562 when request returns no data4563 returns {}4564 behaves like failure response4565 when request returns 400 with an error message4566 raises a Gitlab::PrometheusClient::QueryError error4567 when request returns 400 without an error message4568 raises a Gitlab::PrometheusClient::QueryError error4569 when request returns 5004570 raises a Gitlab::PrometheusClient::UnexpectedResponseError error4571 when request returns non json data4572 raises a Gitlab::PrometheusClient::UnexpectedResponseError error4573 #series4574 calls endpoint and returns list of series4575 #label_values4576 calls endpoint and returns label values4577 #query_range4578 when non utc time is passed4579 passed dates are properly converted to utc4580 when a start time is passed4581 passed it in the requested URL4582 when request returns vector results4583 returns nil4584 when request returns matrix results4585 returns data from the API call4586 when request returns no data4587 returns []4588 behaves like failure response4589 when request returns 400 with an error message4590 raises a Gitlab::PrometheusClient::QueryError error4591 when request returns 400 without an error message4592 raises a Gitlab::PrometheusClient::QueryError error4593 when request returns 5004594 raises a Gitlab::PrometheusClient::UnexpectedResponseError error4595 when request returns non json data4596 raises a Gitlab::PrometheusClient::UnexpectedResponseError error4597 .compute_step4598 time_interval_in_seconds: 0, step: 604599 is expected to eq 604600 time_interval_in_seconds: 10 hours, step: 604601 is expected to eq 604602 time_interval_in_seconds: 10 hours and 1 second, step: 614603 is expected to eq 614604 time_interval_in_seconds: 30 minutes, step: 604605 is expected to eq 604606 time_interval_in_seconds: 3 hours, step: 604607 is expected to eq 604608 time_interval_in_seconds: 8 hours, step: 604609 is expected to eq 604610 time_interval_in_seconds: 1 day, step: 1444611 is expected to eq 1444612 time_interval_in_seconds: 3 days, step: 4324613 is expected to eq 4324614 time_interval_in_seconds: 1 week, step: 10084615 is expected to eq 10084616 proxy4617 get API4618 when response status code is 2004619 returns response object4620 when response status code is not 2004621 returns response object4622 when Gitlab::HTTP::ResponseError is raised4623 without response code4624 raises PrometheusClient::ConnectionError4625 with response code4626 raises Gitlab::PrometheusClient::QueryError4627Packages::Nuget::PackageFinder4628 #execute!4629 with a project4630 behaves like handling all the conditions4631 is expected to contain exactly #<Packages::Package id: 257, project_id: 650, created_at: "2023-10-20 08:53:50.810465000 +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:53:50.853218297 +0000", upda...age_type: "nuget", creator_id: 872, status: "default", last_downloaded_at: nil, status_message: nil>4632 with lower case package name4633 is expected to contain exactly #<Packages::Package id: 257, project_id: 650, created_at: "2023-10-20 08:53:50.810465000 +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:53:50.853218297 +0000", upda...age_type: "nuget", creator_id: 872, status: "default", last_downloaded_at: nil, status_message: nil>4634 with unknown package name4635 is expected to be empty4636 with an uninstallable package4637 is expected to contain exactly #<Packages::Package id: 258, project_id: 650, created_at: "2023-10-20 08:53:50.853218297 +0000", upda...age_type: "nuget", creator_id: 872, status: "default", last_downloaded_at: nil, status_message: nil>4638 with valid version4639 is expected to contain exactly #<Packages::Package id: 258, project_id: 650, created_at: "2023-10-20 08:53:50.853218297 +0000", upda...age_type: "nuget", creator_id: 872, status: "default", last_downloaded_at: nil, status_message: nil>4640 with varying case version4641 is expected to contain exactly #<Packages::Package id: 258, project_id: 650, created_at: "2023-10-20 08:53:50.853218297 +0000", upda...age_type: "nuget", creator_id: 872, status: "default", last_downloaded_at: nil, status_message: nil>4642 with unknown version4643 is expected to be empty4644 with normalized version4645 is expected to contain exactly #<Packages::Package id: 258, project_id: 650, created_at: "2023-10-20 08:53:50.853218297 +0000", upda...age_type: "nuget", creator_id: 872, status: "default", last_downloaded_at: nil, status_message: nil>4646 with limit hit4647 is expected to contain exactly #<Packages::Package id: 263, project_id: 650, created_at: "2023-10-20 08:53:53.956788944 +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:53:53.980904712 +0000", upda...age_type: "nuget", creator_id: 872, status: "default", last_downloaded_at: nil, status_message: nil>4648 with downcase package name4649 is expected to contain exactly #<Packages::Package id: 257, project_id: 650, created_at: "2023-10-20 08:53:50.810465000 +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:53:50.853218297 +0000", upda...age_type: "nuget", creator_id: 872, status: "default", last_downloaded_at: nil, status_message: nil>4650 with client version less than 34651 behaves like calling with_nuget_version_or_normalized_version scope4652 calls with_nuget_version_or_normalized_version scope with the correct arguments4653 with client version greater than or equal to 34654 behaves like calling with_nuget_version_or_normalized_version scope4655 calls with_nuget_version_or_normalized_version scope with the correct arguments4656 with no client version4657 behaves like calling with_nuget_version_or_normalized_version scope4658 calls with_nuget_version_or_normalized_version scope with the correct arguments4659 with a subgroup4660 behaves like handling all the conditions4661 is expected to contain exactly #<Packages::Package id: 257, project_id: 650, created_at: "2023-10-20 08:53:50.810465000 +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:53:50.853218297 +0000", upda...age_type: "nuget", creator_id: 872, status: "default", last_downloaded_at: nil, status_message: nil>4662 with lower case package name4663 is expected to contain exactly #<Packages::Package id: 257, project_id: 650, created_at: "2023-10-20 08:53:50.810465000 +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:53:50.853218297 +0000", upda...age_type: "nuget", creator_id: 872, status: "default", last_downloaded_at: nil, status_message: nil>4664 with unknown package name4665 is expected to be empty4666 with an uninstallable package4667 is expected to contain exactly #<Packages::Package id: 258, project_id: 650, created_at: "2023-10-20 08:53:50.853218297 +0000", upda...age_type: "nuget", creator_id: 872, status: "default", last_downloaded_at: nil, status_message: nil>4668 with valid version4669 is expected to contain exactly #<Packages::Package id: 258, project_id: 650, created_at: "2023-10-20 08:53:50.853218297 +0000", upda...age_type: "nuget", creator_id: 872, status: "default", last_downloaded_at: nil, status_message: nil>4670 with varying case version4671 is expected to contain exactly #<Packages::Package id: 258, project_id: 650, created_at: "2023-10-20 08:53:50.853218297 +0000", upda...age_type: "nuget", creator_id: 872, status: "default", last_downloaded_at: nil, status_message: nil>4672 with unknown version4673 is expected to be empty4674 with normalized version4675 is expected to contain exactly #<Packages::Package id: 258, project_id: 650, created_at: "2023-10-20 08:53:50.853218297 +0000", upda...age_type: "nuget", creator_id: 872, status: "default", last_downloaded_at: nil, status_message: nil>4676 with limit hit4677 is expected to contain exactly #<Packages::Package id: 266, project_id: 650, created_at: "2023-10-20 08:53:57.951339129 +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:53:57.973820437 +0000", upda...age_type: "nuget", creator_id: 872, status: "default", last_downloaded_at: nil, status_message: nil>4678 with downcase package name4679 is expected to contain exactly #<Packages::Package id: 257, project_id: 650, created_at: "2023-10-20 08:53:50.810465000 +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:53:50.853218297 +0000", upda...age_type: "nuget", creator_id: 872, status: "default", last_downloaded_at: nil, status_message: nil>4680 with client version less than 34681 behaves like calling with_nuget_version_or_normalized_version scope4682 calls with_nuget_version_or_normalized_version scope with the correct arguments4683 with client version greater than or equal to 34684 behaves like calling with_nuget_version_or_normalized_version scope4685 calls with_nuget_version_or_normalized_version scope with the correct arguments4686 with no client version4687 behaves like calling with_nuget_version_or_normalized_version scope4688 calls with_nuget_version_or_normalized_version scope with the correct arguments4689 with a group4690 behaves like handling all the conditions4691 is expected to contain exactly #<Packages::Package id: 257, project_id: 650, created_at: "2023-10-20 08:53:50.810465000 +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:53:50.853218297 +0000", upda...age_type: "nuget", creator_id: 872, status: "default", last_downloaded_at: nil, status_message: nil>4692 with lower case package name4693 is expected to contain exactly #<Packages::Package id: 257, project_id: 650, created_at: "2023-10-20 08:53:50.810465000 +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:53:50.853218297 +0000", upda...age_type: "nuget", creator_id: 872, status: "default", last_downloaded_at: nil, status_message: nil>4694 with unknown package name4695 is expected to be empty4696 with an uninstallable package4697 is expected to contain exactly #<Packages::Package id: 258, project_id: 650, created_at: "2023-10-20 08:53:50.853218297 +0000", upda...age_type: "nuget", creator_id: 872, status: "default", last_downloaded_at: nil, status_message: nil>4698 with valid version4699 is expected to contain exactly #<Packages::Package id: 258, project_id: 650, created_at: "2023-10-20 08:53:50.853218297 +0000", upda...age_type: "nuget", creator_id: 872, status: "default", last_downloaded_at: nil, status_message: nil>4700 with varying case version4701 is expected to contain exactly #<Packages::Package id: 258, project_id: 650, created_at: "2023-10-20 08:53:50.853218297 +0000", upda...age_type: "nuget", creator_id: 872, status: "default", last_downloaded_at: nil, status_message: nil>4702 with unknown version4703 is expected to be empty4704 with normalized version4705 is expected to contain exactly #<Packages::Package id: 258, project_id: 650, created_at: "2023-10-20 08:53:50.853218297 +0000", upda...age_type: "nuget", creator_id: 872, status: "default", last_downloaded_at: nil, status_message: nil>4706 with limit hit4707 is expected to contain exactly #<Packages::Package id: 269, project_id: 650, created_at: "2023-10-20 08:54:02.146371956 +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:54:02.171533684 +0000", upda...age_type: "nuget", creator_id: 872, status: "default", last_downloaded_at: nil, status_message: nil>4708 with downcase package name4709 is expected to contain exactly #<Packages::Package id: 257, project_id: 650, created_at: "2023-10-20 08:53:50.810465000 +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:53:50.853218297 +0000", upda...age_type: "nuget", creator_id: 872, status: "default", last_downloaded_at: nil, status_message: nil>4710 with client version less than 34711 behaves like calling with_nuget_version_or_normalized_version scope4712 calls with_nuget_version_or_normalized_version scope with the correct arguments4713 with client version greater than or equal to 34714 behaves like calling with_nuget_version_or_normalized_version scope4715 calls with_nuget_version_or_normalized_version scope with the correct arguments4716 with no client version4717 behaves like calling with_nuget_version_or_normalized_version scope4718 calls with_nuget_version_or_normalized_version scope with the correct arguments4719 with nil4720 is expected to be empty4721 when package name is blank4722 is expected to be empty4723Gitlab::Ci::Config::External::Processor4724 #perform4725 when no external files defined4726 returns the same values4727 when an invalid local file is defined4728 raises an error4729 when an invalid remote file is defined4730 raises an error4731 with a valid remote external file is defined4732 appends the file to the values4733 removes the 'include' keyword4734 when the remote file has `include` with rules:exists4735 evaluates the rule as false4736 removes the 'include' keyword4737 with a valid local external file is defined4738 appends the file to the values4739 removes the 'include' keyword4740 with multiple external files are defined4741 appends the files to the values4742 removes the 'include' keyword4743 when external files are defined but not valid4744 raises an error4745 when both external files and values defined the same key4746 takes precedence4747 when a nested includes are defined4748 when project is public4749 properly expands all includes4750 propagates the pipeline logger4751 stores includes4752 when user is reporter of another project4753 properly expands all includes4754 when user is not allowed4755 raises an error4756 when too many includes is included4757 raises an error4758 when config includes an external configuration file via SSL web request4759 with an acceptable certificate4760 is expected to include {:image => "image:1.0"}4761 with a self-signed certificate4762 returns a reportable configuration error4763 include:component4764 appends the file to the values4765 when a valid project file is defined4766 appends the file to the values4767 when valid project files are defined in a single include4768 appends the file to the values4769 stores includes4770 when local file path has wildcard4771 fetches the matched files4772 stores includes4773 when rules defined4774 when a rule is invalid4775 raises IncludeError4776npm.gitlab-ci.yml4777 the created pipeline4778 on default branch4779 when package.json has been changed4780 behaves like publish job created4781 creates a pipeline with a single job: publish4782 when package.json does not exist or has not been changed4783 behaves like no pipeline created4784 does not create a pipeline because the only job (publish) is not created4785 when the branch name is v1.0.04786 behaves like publish job created4787 creates a pipeline with a single job: publish4788 when the tag name is v1.0.04789 behaves like publish job created4790 creates a pipeline with a single job: publish4791 when the branch name is v2.1.0-alpha4792 behaves like publish job created4793 creates a pipeline with a single job: publish4794 when the tag name is v2.1.0-alpha4795 behaves like publish job created4796 creates a pipeline with a single job: publish4797 when the branch name is patch-14798 behaves like no pipeline created4799 does not create a pipeline because the only job (publish) is not created4800 when the tag name is patch-14801 behaves like no pipeline created4802 does not create a pipeline because the only job (publish) is not created4803 when the branch name is my-feature-branch4804 behaves like no pipeline created4805 does not create a pipeline because the only job (publish) is not created4806 when the tag name is my-feature-branch4807 behaves like no pipeline created4808 does not create a pipeline because the only job (publish) is not created4809 when the branch name is v14810 behaves like no pipeline created4811 does not create a pipeline because the only job (publish) is not created4812 when the tag name is v14813 behaves like no pipeline created4814 does not create a pipeline because the only job (publish) is not created4815 when the branch name is v1.04816 behaves like no pipeline created4817 does not create a pipeline because the only job (publish) is not created4818 when the tag name is v1.04819 behaves like no pipeline created4820 does not create a pipeline because the only job (publish) is not created4821 when the branch name is 2.1.04822 behaves like no pipeline created4823 does not create a pipeline because the only job (publish) is not created4824 when the tag name is 2.1.04825 behaves like no pipeline created4826 does not create a pipeline because the only job (publish) is not created4827Badge4828 validations4829 link_url format4830 behaves like placeholder url4831 allows url with http protocol4832 allows url with https protocol4833 cannot be empty4834 cannot be nil4835 accept badges placeholders4836 sanitize url4837 image_url format4838 behaves like placeholder url4839 allows url with http protocol4840 allows url with https protocol4841 cannot be empty4842 cannot be nil4843 accept badges placeholders4844 sanitize url4845 methods4846 #rendered_link_url4847 behaves like rendered_links4848 uses the project information to populate the url placeholders4849 returns the url if the project used is nil4850 #rendered_image_url4851 behaves like rendered_links4852 uses the project information to populate the url placeholders4853 returns the url if the project used is nil4854 when asset proxy is enabled4855 returns a proxied URL4856DesignManagement::SaveDesignsService4857 #execute4858 when the feature is not available4859 does not create an event in the activity stream4860 behaves like a service error4861 returns an error4862 when the feature is available4863 creates a commit, an event in the activity stream and updates the creation count4864 can run the same command in parallel4865 repository existence4866 is ensured when the service runs4867 behaves like internal event tracking4868 logs to Snowplow4869 when the design collection is in the process of being copied4870 behaves like a service error4871 returns an error4872 when the design collection has a copy error4873 resets the copy state4874 the response4875 includes designs with the expected properties4876 saving the file to LFS4877 saves the design to LFS and saves the repository_type of the LfsObjectsProject as design4878 when HEAD branch is different from master4879 does not raise an exception during update4880 when a design is being updated4881 creates a new version for the existing design and updates the file4882 updates UsageData for changed designs4883 records the correct events4884 behaves like internal event tracking4885 logs to Snowplow4886 when uploading a new design4887 does not link the new version to the existing design4888 when detecting content type4889 detects content type when feature flag is enabled4890 skips content type detection when feature flag is disabled4891 when a design has not changed since its previous version4892 does not create a new version, and returns the design in `skipped_designs`4893 when doing a mixture of updates and creations4894 has the correct side-effects4895 when uploading multiple files4896 returns information about both designs in the response4897 has the correct side-effects4898 when uploading too many files4899 returns the correct error4900 when uploading duplicate files4901 returns the correct error4902 when the user is not allowed to upload designs4903 behaves like a service error4904 returns an error4905 failure modes4906 when creating the commit fails4907 behaves like an execution error4908 returns an error4909 when creating the versions fails4910 behaves like a service error4911 returns an error4912 when a design already existed in the repo but we didn't know about it in the database4913 creates the design and a new version for it4914 scalability4915 runs the same queries for all requests, regardless of number of files (PENDING: See: https://gitlab.com/gitlab-org/gitlab/-/issues/213169)4916ApplicationRecord4917 #id_in4918 returns records of the ids4919 .safe_ensure_unique4920 returns false when ActiveRecord::RecordNotUnique is raised4921 retries based on retry count specified4922 safe find or create methods4923 .safe_find_or_create_by4924 creates the suggestion avoiding race conditions4925 passes a block to find_or_create_by4926 does not create a record when is not valid4927 .safe_find_or_create_by!4928 creates a record using safe_find_or_create_by4929 raises a validation error if the record was not persisted4930 passes a block to find_or_create_by4931 raises a record not found error in case of attributes mismatch4932 .underscore4933 returns the underscored value of the class as a string4934 .where_exists4935 produces a WHERE EXISTS query4936 .where_not_exists4937 produces a WHERE NOT EXISTS query4938 .transaction4939 opens a new transaction4940 does not increment a counter when a transaction is not nested4941 increments a counter when a nested transaction is created4942 increments a counter when a transaction is created in ActiveRecord4943 .with_fast_read_statement_timeout4944 when the query runs faster than configured timeout4945 executes the query without error4946 when the query runs longer than configured timeout4947 cancels the query and raises an exception4948 with database load balancing4949 yields control4950 when the query runs faster than configured timeout4951 executes the query without error4952 when the query runs longer than configured timeout4953 cancels the query and raiss an exception4954 .default_select_columns4955 without an ignored column4956 behaves like selects identically to the default4957 generates the same sql as the default4958 with an ignored column4959 behaves like selects identically to the default4960 generates the same sql as the default4961Gitlab::Ci::Runner::Backoff4962 #duration4963 returns backoff duration from start4964 returns an integer value4965 returns the smallest number greater than or equal to duration4966 #slot4967 started: 0, slot: 04968 falls into an appropaite backoff slot4969 started: 0.1, slot: 04970 falls into an appropaite backoff slot4971 started: 0.9, slot: 04972 falls into an appropaite backoff slot4973 started: 1, slot: 04974 falls into an appropaite backoff slot4975 started: 1.1, slot: 04976 falls into an appropaite backoff slot4977 started: 1.9, slot: 04978 falls into an appropaite backoff slot4979 started: 2, slot: 04980 falls into an appropaite backoff slot4981 started: 2.9, slot: 04982 falls into an appropaite backoff slot4983 started: 3, slot: 04984 falls into an appropaite backoff slot4985 started: 4, slot: 14986 falls into an appropaite backoff slot4987 started: 5, slot: 14988 falls into an appropaite backoff slot4989 started: 6, slot: 14990 falls into an appropaite backoff slot4991 started: 7, slot: 14992 falls into an appropaite backoff slot4993 started: 8, slot: 24994 falls into an appropaite backoff slot4995 started: 9, slot: 24996 falls into an appropaite backoff slot4997 started: 9.9, slot: 24998 falls into an appropaite backoff slot4999 started: 10, slot: 25000 falls into an appropaite backoff slot5001 started: 15, slot: 25002 falls into an appropaite backoff slot5003 started: 16, slot: 35004 falls into an appropaite backoff slot5005 started: 31, slot: 35006 falls into an appropaite backoff slot5007 started: 32, slot: 45008 falls into an appropaite backoff slot5009 started: 63, slot: 45010 falls into an appropaite backoff slot5011 started: 64, slot: 55012 falls into an appropaite backoff slot5013 started: 127, slot: 55014 falls into an appropaite backoff slot5015 started: 128, slot: 65016 falls into an appropaite backoff slot5017 started: 250, slot: 65018 falls into an appropaite backoff slot5019 started: 310, slot: 75020 falls into an appropaite backoff slot5021 started: 520, slot: 85022 falls into an appropaite backoff slot5023 started: 999, slot: 85024 falls into an appropaite backoff slot5025 #to_seconds5026 started: 0, backoff: 15027 calculates backoff based on an appropriate slot5028 started: 0.1, backoff: 15029 calculates backoff based on an appropriate slot5030 started: 0.9, backoff: 15031 calculates backoff based on an appropriate slot5032 started: 1, backoff: 15033 calculates backoff based on an appropriate slot5034 started: 1.1, backoff: 15035 calculates backoff based on an appropriate slot5036 started: 1.9, backoff: 15037 calculates backoff based on an appropriate slot5038 started: 2, backoff: 15039 calculates backoff based on an appropriate slot5040 started: 3, backoff: 15041 calculates backoff based on an appropriate slot5042 started: 4, backoff: 25043 calculates backoff based on an appropriate slot5044 started: 5, backoff: 25045 calculates backoff based on an appropriate slot5046 started: 6, backoff: 25047 calculates backoff based on an appropriate slot5048 started: 6.5, backoff: 25049 calculates backoff based on an appropriate slot5050 started: 7, backoff: 25051 calculates backoff based on an appropriate slot5052 started: 8, backoff: 45053 calculates backoff based on an appropriate slot5054 started: 9, backoff: 45055 calculates backoff based on an appropriate slot5056 started: 9.9, backoff: 45057 calculates backoff based on an appropriate slot5058 started: 10, backoff: 45059 calculates backoff based on an appropriate slot5060 started: 15, backoff: 45061 calculates backoff based on an appropriate slot5062 started: 16, backoff: 85063 calculates backoff based on an appropriate slot5064 started: 31, backoff: 85065 calculates backoff based on an appropriate slot5066 started: 32, backoff: 165067 calculates backoff based on an appropriate slot5068 started: 63, backoff: 165069 calculates backoff based on an appropriate slot5070 started: 64, backoff: 325071 calculates backoff based on an appropriate slot5072 started: 127, backoff: 325073 calculates backoff based on an appropriate slot5074 started: 128, backoff: 645075 calculates backoff based on an appropriate slot5076 started: 250, backoff: 645077 calculates backoff based on an appropriate slot5078 started: 310, backoff: 645079 calculates backoff based on an appropriate slot5080 started: 520, backoff: 645081 calculates backoff based on an appropriate slot5082 started: 999, backoff: 645083 calculates backoff based on an appropriate slot5084Gitlab::Ci::Badge::Release::Template5085 #key_text5086 defaults to latest release5087 returns custom key text5088 #value_text5089 when a release exists5090 returns the tag of the release5091 no releases exist5092 returns string that latest release is none5093 #key_width5094 returns the default key width5095 returns custom key width5096 #value_width5097 returns the default value width5098 returns custom value width5099 returns VALUE_WIDTH_DEFAULT if the custom value_width supplied is greater than permissible limit5100 returns VALUE_WIDTH_DEFAULT if value_width is not a number5101 #key_color5102 always has the same color5103 #value_color5104 when release exists5105 is blue5106 when release does not exist5107 is red5108Gitlab::DataBuilder::Emoji5109 # order random5110 when emoji on merge request5111 returns the merge request data5112 behaves like includes standard data5113 is expected to eq {:avatar_url=>"https://www.gravatar.com/avatar/b99b590ff014b07882cb355e4fee7b66?s=80&d=identicon", :email=>"[REDACTED]", :id=>949, :name=>"Sidney Jones985", :username=>"user341"}5114 contains project data5115 when awardable does not respond to hook_attrs5116 returns the issue data5117 behaves like includes standard data5118 is expected to eq {:avatar_url=>"https://www.gravatar.com/avatar/b99b590ff014b07882cb355e4fee7b66?s=80&d=identicon", :email=>"[REDACTED]", :id=>949, :name=>"Sidney Jones985", :username=>"user341"}5119 contains project data5120 when emoji on snippet5121 returns the snippet data5122 behaves like includes standard data5123 is expected to eq {:avatar_url=>"https://www.gravatar.com/avatar/b99b590ff014b07882cb355e4fee7b66?s=80&d=identicon", :email=>"[REDACTED]", :id=>949, :name=>"Sidney Jones985", :username=>"user341"}5124 contains project data5125 when emoji on note5126 when note on issue5127 returns the note and issue data5128 behaves like includes standard data5129 is expected to eq {:avatar_url=>"https://www.gravatar.com/avatar/b99b590ff014b07882cb355e4fee7b66?s=80&d=identicon", :email=>"[REDACTED]", :id=>949, :name=>"Sidney Jones985", :username=>"user341"}5130 contains project data5131 when note on merge request5132 returns the note and merge request data5133 behaves like includes standard data5134 is expected to eq {:avatar_url=>"https://www.gravatar.com/avatar/b99b590ff014b07882cb355e4fee7b66?s=80&d=identicon", :email=>"[REDACTED]", :id=>949, :name=>"Sidney Jones985", :username=>"user341"}5135 contains project data5136 when note on snippet5137 returns the note and snippet data5138 behaves like includes standard data5139 is expected to eq {:avatar_url=>"https://www.gravatar.com/avatar/b99b590ff014b07882cb355e4fee7b66?s=80&d=identicon", :email=>"[REDACTED]", :id=>949, :name=>"Sidney Jones985", :username=>"user341"}5140 contains project data5141 when note on commit5142 returns the note and commit data5143 behaves like includes standard data5144 is expected to eq {:avatar_url=>"https://www.gravatar.com/avatar/b99b590ff014b07882cb355e4fee7b66?s=80&d=identicon", :email=>"[REDACTED]", :id=>949, :name=>"Sidney Jones985", :username=>"user341"}5145 contains project data5146 when emoji on issue5147 returns the issue data5148 behaves like includes standard data5149 is expected to eq {:avatar_url=>"https://www.gravatar.com/avatar/b99b590ff014b07882cb355e4fee7b66?s=80&d=identicon", :email=>"[REDACTED]", :id=>949, :name=>"Sidney Jones985", :username=>"user341"}5150 contains project data5151Appearance5152 example at ./spec/models/appearance_spec.rb:95153 is expected to eq nil5154 is expected to have many uploads5155 default values5156 is expected to eq ""5157 is expected to eq ""5158 is expected to eq ""5159 is expected to eq ""5160 is expected to eq ""5161 is expected to eq ""5162 is expected to eq ""5163 is expected to eq ""5164 is expected to eq ""5165 is expected to eq "#E75E40"5166 is expected to eq "#FFFFFF"5167 is expected to eq false5168 is expected to contain exactly 192 and 5125169 #single_appearance_row5170 adds an error when more than 1 row exists5171 with uploads5172 behaves like model with uploads5173 .destroy5174 with mounted uploader5175 deletes remote uploads5176 with not mounted uploads5177 with local files5178 deletes any FileUploader uploads which are not mounted (PENDING: No reason given)5179 deletes local files (PENDING: No reason given)5180 with remote files5181 deletes any FileUploader uploads which are not mounted (PENDING: No reason given)5182 deletes remote files (PENDING: No reason given)5183 behaves like logo paths5184 returns nil when there is no upload5185 returns the path when the upload has been orphaned5186 returns a local path using the system route5187 with asset host configured5188 returns a full URL with the system path5189 behaves like logo paths5190 returns nil when there is no upload5191 returns the path when the upload has been orphaned5192 returns a local path using the system route5193 with asset host configured5194 returns a full URL with the system path5195 behaves like logo paths5196 returns nil when there is no upload5197 returns the path when the upload has been orphaned5198 returns a local path using the system route5199 with asset host configured5200 returns a full URL with the system path5201 behaves like logo paths5202 returns nil when there is no upload5203 returns the path when the upload has been orphaned5204 returns a local path using the system route5205 with asset host configured5206 returns a full URL with the system path5207 behaves like icon paths sized5208 returns icon path with size parameter5209 behaves like icon paths sized5210 returns icon path with size parameter5211 validations5212 is expected to allow :message_background_color to be ‹nil›5213 is expected to allow :message_background_color to be ‹"#000"›5214 is expected to allow :message_background_color to be ‹"#AABBCC"›5215 is expected not to allow :message_background_color to be ‹"000"›5216 is expected to allow :message_font_color to be ‹nil›5217 is expected to allow :message_font_color to be ‹"#000"›5218 is expected to allow :message_font_color to be ‹"#AABBCC"›5219 is expected not to allow :message_font_color to be ‹"000"›5220 valid pwa attributes5221 attribute: :pwa_name, value: nil5222 behaves like validation allows5223 is expected to allow :pwa_name to be ‹nil›5224 attribute: :pwa_name, value: "GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG"5225 behaves like validation allows5226 is expected to allow :pwa_name to be ‹"GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG"›5227 attribute: :pwa_short_name, value: nil5228 behaves like validation allows5229 is expected to allow :pwa_short_name to be ‹nil›5230 attribute: :pwa_short_name, value: "SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS"5231 behaves like validation allows5232 is expected to allow :pwa_short_name to be ‹"SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS"›5233 attribute: :pwa_description, value: nil5234 behaves like validation allows5235 is expected to allow :pwa_description to be ‹nil›5236 attribute: :pwa_description, value: "TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT"5237 behaves like validation allows5238 is expected to allow :pwa_description to be ‹"TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT...›5239 invalid pwa attributes5240 attribute: :pwa_name, value: "GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG", message: "is too long (maximum is 255 characters)"5241 behaves like validation permits with message5242 is expected not to allow :pwa_name to be ‹"GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG"›, producing a custom validation error on failure5243 attribute: :pwa_short_name, value: "SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS", message: "is too long (maximum is 255 characters)"5244 behaves like validation permits with message5245 is expected not to allow :pwa_short_name to be ‹"SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS"›, producing a custom validation error on failure5246 attribute: :pwa_description, value: "TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT", message: "is too long (maximum is 2048 characters)"5247 behaves like validation permits with message5248 is expected not to allow :pwa_description to be ‹"TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT...›, producing a custom validation error on failure5249 email_header_and_footer_enabled5250 default email_header_and_footer_enabled flag value5251 returns email_header_and_footer_enabled as true5252 when setting email_header_and_footer_enabled flag value5253 returns email_header_and_footer_enabled as true5254Projects::ParticipantsService5255 #execute5256 returns results in correct order5257 includes `All Project and Group Members` (FAILED - 1)52591st Try error in ./spec/services/projects/participants_service_spec.rb:29:5260expected [{:availability => nil, :avatar_url => "https://www.gravatar.com/avatar/13e9abd1f7bae251b93449efb6cddcd0?...d09301d7b9e0f3ef?s=80&d=identicon", :name => "Sidney Jones1011", :type => "User", :username => "user367"}] to include (a hash including {:username => "all", :name => "All Project and Group Members"})5261Diff:5262@@ -1,12 +1,23 @@5263-[(a hash including {:username => "all", :name => "All Project and Group Members"})]5264+[{:availability=>nil,5265+ :avatar_url=>5267+ :name=>"Sidney Jones1012",5268+ :type=>"User",5269+ :username=>"namespace646"},5270+ {:availability=>nil,5271+ :avatar_url=>5273+ :name=>"Sidney Jones1011",5274+ :type=>"User",5275+ :username=>"user367"}]5277RSpec::Retry: 2nd try ./spec/services/projects/participants_service_spec.rb:295278 does not return duplicate author5279 N+1 checks5280 avoids N+1 UserDetail queries5281 avoids N+1 groups queries5282 group items5283 group user counts5284 returns correct user counts for groups5285 avatar_url5286 returns an url for the avatar5287 returns an url for the avatar with relative url5288 with subgroups5289 returns results ordered by full path5290 when `disable_all_mention` FF is enabled5291 does not include `All Project and Group Members`5292 #project_members5293 when there is a project in group namespace5294 returns members of a group5295 when there is a private group and a public project5296 when the private group is invited to the public project5297 does not return the private group5298 returns private group members5299 returns the project maintainer5300 returns project members from an invited public group5301 returns members of the ancestral groups of the private group5302 returns invited group members of the private group5303ActiveSession5304 #current?5305 returns true if the active session matches the current session5306 returns false if the active session does not match the current session5307 returns false if the session id is nil5308 .list5309 returns all sessions by user5310 returns an empty array if the user does not have any active session5311 when the current session is in the old format5312 behaves like ignoring obsolete entries5313 does not return obsolete entries and cleans them up5314 when the current session is in the new format5315 behaves like ignoring obsolete entries5316 does not return obsolete entries and cleans them up5317 .list_sessions5318 uses the ActiveSession lookup to return original sessions5319 .session_ids_for_user5320 uses the user lookup table to return session ids5321 .sessions_from_ids5322 uses the ActiveSession lookup to return original sessions5323 avoids a redis lookup for an empty array5324 uses redis lookup in batches5325 .set5326 sets a new redis entry for the user session and a lookup entry5327 adds timestamps and information from the request5328 keeps the created_at from the login on consecutive requests5329 .destroy_session5330 destroy called with Rack::Session::SessionId#private_id5331 calls .destroy_sessions5332 ActiveSession with session_private_id5333 when using old session key serialization5334 removes the devise session5335 removes the lookup entry5336 removes the ActiveSession5337 when using new session key serialization5338 removes the devise session5339 removes the lookup entry5340 removes the ActiveSession5341 .destroy_all_but_current5342 gracefully handles a nil session ID5343 with legacy sessions5344 behaves like with user sessions5345 removes the entry associated with the all user sessions but current5346 removes the lookup entry of deleted sessions5347 does not remove impersonated sessions5348 with new sessions5349 behaves like with user sessions5350 removes the entry associated with the all user sessions but current5351 removes the lookup entry of deleted sessions5352 does not remove impersonated sessions5353 .cleanup5354 with legacy sessions5355 behaves like cleaning up5356 does not bail if there are no lookup entries5357 when removing obsolete sessions5358 removes obsolete lookup entries5359 cleaning up old sessions5360 removes obsolete active sessions entries5361 removes obsolete lookup entries5362 removes obsolete lookup entries even without active session5363 when the number of active sessions is lower than the limit5364 does not remove active session entries, but removes lookup entries5365 cleaning up old sessions stored by Rack::Session::SessionId#private_id5366 removes obsolete active sessions entries5367 with new sessions5368 behaves like cleaning up5369 does not bail if there are no lookup entries5370 when removing obsolete sessions5371 removes obsolete lookup entries5372 cleaning up old sessions5373 removes obsolete active sessions entries5374 removes obsolete lookup entries5375 removes obsolete lookup entries even without active session5376 when the number of active sessions is lower than the limit5377 does not remove active session entries, but removes lookup entries5378 cleaning up old sessions stored by Rack::Session::SessionId#private_id5379 removes obsolete active sessions entries5380 .cleaned_up_lookup_entries5381 with legacy sessions5382 behaves like cleaning up lookup entries5383 removes obsolete lookup entries5384 reports the removed entries5385 with new sessions5386 behaves like cleaning up lookup entries5387 removes obsolete lookup entries5388 reports the removed entries5389 .set_active_user_cookie5390 sets marketing cookie5391Gitlab::Redis::RateLimiting5392 behaves like redis_shared_examples5393 .config_file_name5394 when there is no config file anywhere5395 is expected to be nil5396 .store5397 with old format5398 behaves like redis store5399 instantiates Redis::Store5400 with the namespace5401 uses specified namespace5402 with new format5403 behaves like redis store5404 instantiates Redis::Store5405 with the namespace5406 uses specified namespace5407 .params5408 withstands mutation5409 when url contains unix socket reference5410 with old format5411 returns path key instead5412 with new format5413 returns path key instead5414 when url is host based5415 with old format5416 returns hash with host, port, db, and password5417 with new format5418 rails_env: "development", host: "development-host"5419 returns hash with host, port, db, and password5420 rails_env: "test", host: "test-host"5421 returns hash with host, port, db, and password5422 rails_env: "production", host: "production-host"5423 returns hash with host, port, db, and password5424 with redis cluster format5425 rails_env: "development", host: "development-master"5426 returns hash with cluster and password5427 rails_env: "test", host: "test-master"5428 returns hash with cluster and password5429 rails_env: "production", host: "production-master"5430 returns hash with cluster and password5431 .url5432 withstands mutation5433 when yml file with env variable5434 reads redis url from env variable5435 .version5436 returns a version5437 .with5438 when running on single-threaded runtime5439 instantiates a connection pool with size 55440 when running on multi-threaded runtime5441 instantiates a connection pool with a size based on the concurrency of the worker5442 when there is no config at all5443 can run an empty block5444 #db5445 with old format5446 returns the correct db5447 with new format5448 returns the correct db5449 with cluster-mode5450 returns the correct db5451 #sentinels5452 when sentinels are defined5453 rails_env: "development", hosts: ["development-replica1", "development-replica2"]5454 returns an array of hashes with host and port keys5455 rails_env: "test", hosts: ["test-replica1", "test-replica2"]5456 returns an array of hashes with host and port keys5457 rails_env: "production", hosts: ["production-replica1", "production-replica2"]5458 returns an array of hashes with host and port keys5459 when sentinels are not defined5460 returns nil5461 when cluster is defined5462 returns nil5463 #sentinels?5464 when sentinels are defined5465 returns true5466 when sentinels are not defined5467 is expected to eq nil5468 when cluster is defined5469 returns false5470 #raw_config_hash5471 returns old-style single url config in a hash5472 returns cluster config without url key in a hash5473 #parse_client_tls_options5474 when configuration does not have TLS related options5475 returns the coniguration as-is5476 when specified certificate file does not exist5477 raises error about missing certificate file5478 when specified key file does not exist5479 raises error about missing key file5480 when only certificate file is specified5481 renders resque.yml correctly5482 when only key file is specified5483 renders resque.yml correctly5484 when configuration valid TLS related options5485 converts cert_file and key_file appropriately5486 #fetch_config5487 raises an exception when the config file contains invalid yaml5488 when redis.yml exists5489 uses config/redis.yml5490 when no config file exsits5491 returns nil5492 when resque.yml exists5493 returns the config from resque.yml5494 #fetch_config5495 when redis.yml exists5496 when the fallback has a redis.yml entry5497 is expected to eq {"fallback redis.yml"=>123}5498 and an instance config file exists5499 is expected to eq {"instance specific file"=>456}5500 and the instance has a redis.yml entry5501 is expected to eq {"instance redis.yml"=>789}5502 when no redis config file exsits5503 returns nil5504 when resque.yml exists5505 returns the config from resque.yml5506Gitlab::Utils::SanitizeNodeLink5507 # order random5508 #sanitize_unsafe_links5509 makes a call to #remove_unsafe_links_method5510 #remove_unsafe_links5511 with the scheme: javascript:5512 <a> tags5513 removes the unsafe link5514 <img> tags5515 removes the unsafe link5516 <video> tags5517 removes the unsafe link5518 <audio> tags5519 removes the unsafe link5520 with the scheme: JaVaScRiPt:5521 <a> tags5522 removes the unsafe link5523 <img> tags5524 removes the unsafe link5525 <video> tags5526 removes the unsafe link5527 <audio> tags5528 removes the unsafe link5529 with the scheme: javascript:5530 <a> tags5531 removes the unsafe link5532 <img> tags5533 removes the unsafe link5534 <video> tags5535 removes the unsafe link5536 <audio> tags5537 removes the unsafe link5538 with the scheme: javascript :5539 <a> tags5540 removes the unsafe link5541 <img> tags5542 removes the unsafe link5543 <video> tags5544 removes the unsafe link5545 <audio> tags5546 removes the unsafe link5547 with the scheme: javascript:5548 <a> tags5549 removes the unsafe link5550 <img> tags5551 removes the unsafe link5552 <video> tags5553 removes the unsafe link5554 <audio> tags5555 removes the unsafe link5556 with the scheme: javascript :5557 <a> tags5558 removes the unsafe link5559 <img> tags5560 removes the unsafe link5561 <video> tags5562 removes the unsafe link5563 <audio> tags5564 removes the unsafe link5565 with the scheme: :javascript:5566 <a> tags5567 removes the unsafe link5568 <img> tags5569 removes the unsafe link5570 <video> tags5571 removes the unsafe link5572 <audio> tags5573 removes the unsafe link5574 with the scheme: javascript:5575 <a> tags5576 removes the unsafe link5577 <img> tags5578 removes the unsafe link5579 <video> tags5580 removes the unsafe link5581 <audio> tags5582 removes the unsafe link5583 with the scheme: javascript:5584 <a> tags5585 removes the unsafe link5586 <img> tags5587 removes the unsafe link5588 <video> tags5589 removes the unsafe link5590 <audio> tags5591 removes the unsafe link5592 with the scheme:  javascript:5593 <a> tags5594 removes the unsafe link5595 <img> tags5596 removes the unsafe link5597 <video> tags5598 removes the unsafe link5599 <audio> tags5600 removes the unsafe link5601 when URI is valid5602 does not remove it5603 when URI is invalid5604 removes the link5605 when URI is encoded but still invalid5606 removes the link5607 #safe_protocol?5608 with the scheme: javascript:5609 returns false5610 with the scheme: JaVaScRiPt:5611 returns false5612 with the scheme: javascript:5613 returns false5614 with the scheme: javascript :5615 returns false5616 with the scheme: javascript:5617 returns false5618 with the scheme: javascript :5619 returns false5620 with the scheme: :javascript:5621 returns false5622 with the scheme: javascript:5623 returns false5624 with the scheme: javascript:5625 returns false5626 with the scheme:  javascript:5627 returns false5628TreeHelper5629 #commit_in_single_accessible_branch5630 escapes HTML from the branch name5631 #vue_file_list_data5632 returns a list of attributes related to the project5633 #web_ide_button_data5634 returns a list of attributes related to the project5635 a blob is passed5636 returns edit url and webide url for the blob5637 does not load blob from repository again5638 nil blob is passed5639 does not load blob from repository5640 user does not have write access but a personal fork exists5641 includes forked project path as project_path5642 a blob is passed5643 returns edit url and web ide for the blob in the fork5644 for archived project5645 does not show any buttons5646 user has write access5647 includes original project path as project_path5648 a blob is passed5649 returns edit url and web ide for the blob in the fork5650 gitpod settings is enabled5651 has show_gitpod_button: true5652 has gitpod_enabled: true when user has enabled gitpod5653 has gitpod_enabled: false when user has not enabled gitpod5654 has show_gitpod_button: false when web ide button is not shown5655 .patch_branch_name5656 returns a patch branch name5657 without a current_user5658 returns nil5659 .fork_modal_options5660 returns correct fork path5661 when show_edit_button true5662 returns correct fork path and modal id5663 when show_web_ide_button true5664 returns correct fork path and modal id5665Gitlab::ImportExport::AfterExportStrategies::BaseAfterExportStrategy5666 #execute5667 returns if project exported file is not found5668 creates a lock file in the export dir5669 when the method succeeds5670 removes the lock file5671 removes the archive path5672 when the method fails5673 when validation fails5674 does not create the lock file5675 does not execute main logic5676 logs validation errors in shared context5677 removes the archive path5678 when an exception is raised5679 removes the lock5680 #log_validation_errors5681 add the message to the shared context5682 #to_json5683 adds the current strategy class to the serialized attributes5684MergeRequests::EnsurePreparedWorker5685 # order random5686 #perform5687 when ensure_merge_requests_prepared is enabled5688 creates the expected NewMergeRequestWorkers of the unprepared merge requests5689 when ensure_merge_requests_prepared is disabled5690 does not prepare any merge requests5691 behaves like an idempotent worker5692 is labeled as idempotent5693 performs multiple times sequentially without raising an exception5694 creates the expected NewMergeRequestWorkers of the unprepared merge requests5695Users::UpdateService5696 #execute5697 updates time preferences5698 returns an error result when record cannot be updated5699 includes namespace error messages5700 updates the status if status params were given5701 does not delete the status if no status param was passed5702 includes status error messages5703 updates user detail with provided attributes5704 does not try to reset unconfirmed email for a new user5705 updating canonical email5706 if email was changed5707 calls canonicalize_email5708 when race condition5709 updates email for stale user5710 when check_password is true5711 returns error if no password confirmation was passed5712 returns error if wrong password confirmation was passed5713 does not require password if it was automatically set5714 does not require a password if the attribute changed does not require it5715 when check_password is left to false5716 does not require a password check5717 if email was NOT changed5718 skips update canonicalize email service call5719 does not reset unconfirmed email5720 updates the enabled_following5721WARNING: Active Record does not support composite primary key.5722user_follow_users has composite primary key. Composite primary key is ignored.5723 removes followers and followees5724 when there is more followers/followees then batch limit5725 removes followers and followees5726 #execute!5727 updates the name5728 raises an error when record cannot be updated5729 fires system hooks when a new user is saved5730Gitlab::UserAccessSnippet5731 #can_do_action?5732 when can access_git5733 calls Ability#allowed? and returns its result5734 when can not access_git5735 disallows access5736 when user is nil5737 disallows access5738 when user is migration bot5739 allows access5740 #can_push_to_branch?5741 anonymous5742 when can access_git5743 respects accessibility5744 when can not access_git5745 disallows access5746 non_member5747 when can access_git5748 respects accessibility5749 when can not access_git5750 disallows access5751 guest5752 when can access_git5753 respects accessibility5754 when can not access_git5755 disallows access5756 reporter5757 when can access_git5758 respects accessibility5759 when can not access_git5760 disallows access5761 maintainer5762 when can access_git5763 respects accessibility5764 when can not access_git5765 disallows access5766 admin5767 when can access_git5768 respects accessibility5769 when can not access_git5770 disallows access5771 author5772 when can access_git5773 respects accessibility5774 when can not access_git5775 disallows access5776 when user is migration bot5777 allows access5778 when snippet is nil5779 disallows access5780 when user is migration bot5781 disallows access5782 #can_create_tag?5783 returns false5784 when user is migration bot5785 returns false5786 #can_delete_branch?5787 returns false5788 when user is migration bot5789 returns false5790 #can_merge_to_branch?5791 returns false5792 when user is migration bot5793 returns false5794Quality::TestLevel5795 TEST_LEVEL_FOLDERS constant5796 ensures all directories it refers to exists5797 #pattern5798 when level is all5799 returns a pattern5800 when level is frontend_fixture5801 returns a pattern5802 when level is unit5803 returns a pattern5804 when level is migration5805 returns a pattern5806 when level is background_migration5807 returns a pattern5808 when level is integration5809 returns a pattern5810 when level is system5811 returns a pattern5812 with a prefix5813 returns a pattern5814 with several prefixes5815 returns a pattern5816 performance5817 memoizes the pattern for a given level5818 freezes the pattern for a given level5819 #regexp5820 when level is all5821 returns a regexp5822 when level is frontend_fixture5823 returns a regexp5824 when level is unit5825 returns a regexp5826 when level is migration5827 returns a regexp5828 when level is background_migration5829 returns a regexp5830 when level is integration5831 returns a regexp5832 when level is system5833 returns a regexp5834 with a prefix5835 returns a regexp5836 with several prefixes5837 returns a regexp5838 when start_with == true5839 returns a regexp5840 performance5841 memoizes the regexp for a given level5842 freezes the regexp for a given level5843 #level_for5844 returns the correct level for a unit test5845 returns the correct level for a frontend fixture test5846 returns the correct level for a tooling test5847 returns the correct level for a migration test5848 returns the correct level for a background migration test5849 returns the correct level for an EE file without passing a prefix5850 returns the correct level for a geo migration test5851 returns the correct level for a EE-namespaced background migration test5852 returns the correct level for an integration test5853 returns the correct level for an integration test in a subfolder5854 returns the correct level for a system test5855 raises an error for an unknown level5856 ensures all spec/ folders are covered by a test level5857Discussions::ResolveService5858 #execute5859 doesn't resolve discussions the user can't resolve5860 resolves the discussion5861 tracks thread resolve usage data5862 executes the notification service5863 schedules an auto-merge5864 sends GraphQL triggers5865 adds a system note to the discussion5866 can resolve multiple discussions at once5867 raises an argument error if discussions do not belong to the same noteable5868 with a project that requires all discussion to be resolved5869 does not schedule an auto-merge5870 schedules an auto-merge5871 when discussion is not for a merge request5872 does not execute the notification service5873 does not track thread resolve usage data5874 does not schedule an auto-merge5875 does not send GraphQL triggers5876 when resolving a discussion5877 in a design5878 when user resolving discussion has open todos5879 marks user todos for given discussion as done5880 in a merge request5881 does not mark user todo as done5882Projects::Members::EffectiveAccessLevelFinder#execute5883 for a personal project5884 when the project owner is a member of the project5885 behaves like includes access level of the owner of the project5886 includes access level of the owner of the project as Owner5887 when the project owner is not explicitly a member of the project5888 behaves like includes access level of the owner of the project5889 includes access level of the owner of the project as Owner5890 direct members of the project5891 includes access levels of the direct members of the project5892 does not include access levels of users who have requested access to the project5893 includes access levels of users who are in non-active state5894 for a project within a group5895 project in a root group5896 includes access levels of users who are direct members of the parent group5897 when access level is developer5898 when access level is owner5899 project in a subgroup5900 includes access levels of users who are members of the ancestors of the parent group5901 user is both a member of the project and a member of the parent group5902 includes the maximum access level among project and group membership5903 members from group share5904 includes the user from the group share with the right access level5905 when the project also has the same user as a member, but with a different access level5906 includes the maximum access level among project and group membership5907 when the project's ancestor also has the same user as a member, but with a different access level5908 includes the maximum access level among project and group membership5909 for a project that is shared with other group(s)5910 includes the least among the specified access levels5911 even when the `lock_memberships_to_ldap` setting has been turned ON5912 includes the least among the specified access levels5913 when the group containing the project has forbidden group shares for any of its projects5914 does not include the users from any group shares5915 a combination of all possible avenues of membership5916 includes the highest access level from all avenues of memberships5917Mutations::Issues::SetConfidential5918 is expected to require graphql authorizations :update_issue5919 #resolve5920 behaves like permission level for issue mutation is correctly verified5921 when the user is not a project member5922 behaves like when the user does not have access to the resource5923 raises an error5924 even if assigned to the issue5925 does not modify issue5926 even if author of the issue5927 does not modify issue5928 when the user is a project member5929 with guest role5930 behaves like when the user does not have access to the resource5931 raises an error5932 even if assigned to the issue5933 does not modify issue5934 even if author of the issue5935 does not modify issue5936 when the user can update the issue5937 returns the issue as confidential5938 when passing confidential as false5939 updates the issue confidentiality to false5940 when guest user is an assignee5941 does not change issue confidentiality5942Gitlab::Usage::MetricDefinition5943 has only valid definitions5944 not_removed5945 includes metrics that are not removed5946 #with_instrumentation_class5947 includes definitions with instrumentation_class5948 with removed metric5949 excludes removed definitions5950 #key5951 returns a symbol from name5952 #to_context5953 with data_source redis_hll metric5954 returns a ServicePingContext with first event as event_name5955 with data_source redis metric5956 returns a ServicePingContext with first event as event_name5957 with data_source database metric5958 returns nil5959 #validate5960 attribute: :description, value: nil5961 raise exception5962 attribute: :value_type, value: nil5963 raise exception5964 attribute: :value_type, value: "test"5965 raise exception5966 attribute: :status, value: nil5967 raise exception5968 attribute: :milestone, value: 10.05969 raise exception5970 attribute: :data_category, value: nil5971 raise exception5972 attribute: :key_path, value: nil5973 raise exception5974 attribute: :product_group, value: nil5975 raise exception5976 attribute: :time_frame, value: nil5977 raise exception5978 attribute: :time_frame, value: "29d"5979 raise exception5980 attribute: :data_source, value: "other"5981 raise exception5982 attribute: :data_source, value: nil5983 raise exception5984 attribute: :distribution, value: nil5985 raise exception5986 attribute: :distribution, value: "test"5987 raise exception5988 attribute: :tier, value: ["test", "ee"]5989 raise exception5990 attribute: :repair_issue_url, value: nil5991 raise exception5992 attribute: :removed_by_url, value: 15993 raise exception5994 attribute: :performance_indicator_type, value: nil5995 raise exception5996 attribute: :instrumentation_class, value: "Metric_Class"5997 raise exception5998 attribute: :instrumentation_class, value: "metricClass"5999 raise exception6000 conditional validations6001 when metric has broken status6002 has to have repair issue url provided6003 #events6004 when metric is not event based6005 returns empty hash6006 when metric is using old format6007 returns a correct hash6008 when metric is using new format6009 returns a correct hash6010 when metric is using both formats6011 uses the new format6012 #valid_service_ping_status?6013 when metric has active status6014 has to return true6015 when metric has removed status6016 has to return false6017 .load_all!6018 has empty list when there are no definition files6019 has one metric when there is one file6020 when the same metric is defined multiple times raises exception6021 dump_metrics_yaml6022 returns a YAML with both metrics in a sequence6023Gitlab::MultiCollectionPaginator6024 raises an error for invalid page size6025 combines both collections6026 includes elements second collection if first collection is empty6027 with a full first page6028 knows the total count of the collection6029 fills the first page with elements of the first collection6030 fils the second page with a mixture of the first & second collection6031 fils the last page with elements from the second collection6032Banzai::Pipeline::GfmPipeline6033 integration between parsing regular and external issue references6034 when internal issue tracker is enabled6035 executes :each_node only once for first reference filter6036 allows to use long external reference syntax for Redmine6037 parses cross-project references to regular issues6038 when shorthand pattern #ISSUE_ID is used6039 links an internal issues and keep updated nodes in result[:reference_filter_nodes]6040 when shorthand pattern #ISSUE_ID is used6041 links an internal issue if it exists6042 does not link any issue if it does not exist on GitLab6043 when internal issue tracker is disabled6044 allows to use shorthand external reference syntax for Redmine6045 allows to use long external reference syntax for Redmine6046 parses cross-project references to regular issues6047 markdown link or image urls having spaces6048 rewrites links with spaces in url6049 rewrites images with spaces in url6050 sanitizes the fixed link6051 emoji in references6052 renders a label reference with emoji inside6053 renders a milestone reference with emoji inside6054 asset proxy6055 replaces a lazy loaded img src6056 autolinks images to the proxy6057 properly adds tooltips to link for IDN images6058Gitlab::AlertManagement::Payload::Generic6059 behaves like subclass has expected api6060 defines all public methods in the base class6061 #title6062 behaves like parsable alert payload field with fallback6063 without payload6064 is expected to eq "New: Alert"6065 with title6066 is expected to eq "some value"6067 #severity6068 when set6069 payload_severity: "critical", expected_severity: :critical6070 is expected to eq :critical6071 payload_severity: "high", expected_severity: :high6072 is expected to eq :high6073 payload_severity: "medium", expected_severity: :medium6074 is expected to eq :medium6075 payload_severity: "low", expected_severity: :low6076 is expected to eq :low6077 payload_severity: "info", expected_severity: :info6078 is expected to eq :info6079 payload_severity: "CRITICAL", expected_severity: :critical6080 is expected to eq :critical6081 payload_severity: "cRiTiCaL", expected_severity: :critical6082 is expected to eq :critical6083 payload_severity: "unmapped", expected_severity: nil6084 is expected to eq nil6085 payload_severity: 1, expected_severity: nil6086 is expected to eq nil6087 payload_severity: nil, expected_severity: nil6088 is expected to eq nil6089 without key6090 is expected to be nil6091 #monitoring_tool6092 behaves like parsable alert payload field6093 behaves like parsable alert payload field with fallback6094 without payload6095 is expected to eq nil6096 with monitoring_tool6097 is expected to eq "some value"6098 #service6099 behaves like parsable alert payload field6100 behaves like parsable alert payload field with fallback6101 without payload6102 is expected to eq nil6103 with service6104 is expected to eq "some value"6105 #hosts6106 behaves like parsable alert payload field6107 behaves like parsable alert payload field with fallback6108 without payload6109 is expected to eq nil6110 with hosts6111 is expected to eq "some value"6112 #starts_at6113 without start_time6114 is expected to eq 2023-10-20 08:58:04.000000000 +00006115 with start_time6116 is expected to eq 2023-10-20 08:48:04.000000000 +00006117 #runbook6118 behaves like parsable alert payload field6119 behaves like parsable alert payload field with fallback6120 without payload6121 is expected to eq nil6122 with runbook6123 is expected to eq "some value"6124 #gitlab_fingerprint6125 returns a fingerprint6126 #environment_name6127 behaves like parsable alert payload field6128 behaves like parsable alert payload field with fallback6129 without payload6130 is expected to eq nil6131 with gitlab_environment_name6132 is expected to eq "some value"6133 #description6134 behaves like parsable alert payload field6135 behaves like parsable alert payload field with fallback6136 without payload6137 is expected to eq nil6138 with description6139 is expected to eq "some value"6140 #ends_at6141 without end_time6142 is expected to be nil6143 with end_time6144 is expected to eq 2023-10-20 08:48:05.000000000 +00006145 #resolved?6146 without end time6147 is expected to eq false6148 with end time6149 is expected to eq true6150 #source6151 is expected to eq "Generic Alert Endpoint"6152 with alerting integration provided6153 is expected to eq "INTEGRATION"6154 with monitoring tool defined in the raw payload6155 is expected to eq "TOOL"6156Gitlab::Cache::Helpers6157 #render_cached6158 single object6159 when presenter is a serializer6160 behaves like object cache helper6161 is expected to be a kind of Gitlab::Json::PrecompiledJson6162 uses the presenter6163 is valid JSON6164 fetches from the cache6165 when a cache context is supplied6166 uses the context to augment the cache key6167 when expires_in is supplied6168 sets the expiry when accessing the cache6169 when a caller id is present6170 increments the counter6171 when presenter is a Grape::Entity6172 behaves like object cache helper6173 is expected to be a kind of Gitlab::Json::PrecompiledJson6174 uses the presenter6175 is valid JSON6176 fetches from the cache6177 when a cache context is supplied6178 uses the context to augment the cache key6179 when expires_in is supplied6180 sets the expiry when accessing the cache6181 when a caller id is present6182 increments the counter6183 collection of objects6184 behaves like collection cache helper6185 is expected to be a kind of Gitlab::Json::PrecompiledJson6186 uses the presenter6187 is valid JSON6188 fetches from the cache6189 when a cache context is supplied6190 uses the context to augment the cache key6191 expires_in is supplied6192 sets the expiry when accessing the cache6193 when a caller id is present6194 when presentable has a group by clause6195 returns the presentables6196 when the presentables all miss6197 increments the counters6198 when the presents hit6199 increments the counters6200 when passed presenter is not a serializer or an entity6201 throws an exception6202MergeRequests::ExportCsvService6203 csv_data6204 contains the correct information6205 assignees6206 when assigned6207 contains the names of assignees6208 contains the usernames of assignees6209 when not assigned6210 returns empty strings6211 approvers6212 when approved6213 contains the names of approvers separated by a comma6214 contains the usernames of approvers separated by a comma6215 when not approved6216 returns empty strings6217 merged user6218 MR is merged6219 is merged6220 has a merged user6221 MR is not merged6222 returns empty strings6223 milestone6224 milestone is assigned6225 contains the milestone ID6226 no milestone is assigned6227 returns an empty string6228 #email6229 emails csv6230 renders with a target filesize6231Gitlab::HttpIO6232 #close6233 is expected to be nil6234 #binmode6235 is expected to be nil6236 #binmode?6237 is expected to be truthy6238 #path6239 is expected to be nil6240 #url6241 is expected to eq "http://object-storage/trace"6242 #seek6243 when moves pos to end of the file6244 is expected to eq 1924416245 when moves pos to middle of the file6246 is expected to eq 962206247 when moves pos around6248 matches the result6249 #eof?6250 when current pos is at end of the file6251 is expected to be truthy6252 when current pos is not at end of the file6253 is expected to be falsey6254 #each_line6255 yields lines6256 when buckets on GCS6257 when BUFFER_SIZE is larger than file size6258 calls get_chunk only once6259 #read6260 when there are no network issue6261 when read whole size6262 when BUFFER_SIZE is smaller than file size6263 reads a trace6264 when BUFFER_SIZE is larger than file size6265 reads a trace6266 when read only first 100 bytes6267 when BUFFER_SIZE is smaller than file size6268 reads a trace6269 when BUFFER_SIZE is larger than file size6270 reads a trace6271 when tries to read oversize6272 when BUFFER_SIZE is smaller than file size6273 reads a trace6274 when BUFFER_SIZE is larger than file size6275 reads a trace6276 when tries to read 0 bytes6277 when BUFFER_SIZE is smaller than file size6278 reads a trace6279 when BUFFER_SIZE is larger than file size6280 reads a trace6281 when there is anetwork issue6282 reads a trace6283 #readline6284 when there is anetwork issue6285 reads a trace6286 when BUFFER_SIZE is smaller than file size6287 behaves like all line matching6288 reads a line6289 when BUFFER_SIZE is larger than file size6290 behaves like all line matching6291 reads a line6292 when pos is at middle of the file6293 reads from pos6294 #write6295 is expected to raise NotImplementedError6296 #truncate6297 is expected to raise NotImplementedError6298 #flush6299 is expected to raise NotImplementedError6300 #present?6301 is expected to be truthy6302 #send6303 does not set the "accept-encoding" header6304Gitlab::DiscussionsDiff::FileCollection6305 #load_highlight6306 writes uncached diffs highlight6307 does not write cache for already cached file6308 does not write cache for empty mapping6309 does not write cache for resolved notes6310 loaded diff files have highlighted lines loaded6311 not loaded diff files does not have highlighted lines loaded6312Packages::Maven::PackageFinder6313 uses CTE in the query6314 #execute6315 within the project6316 behaves like handling valid and invalid paths6317 with a valid path6318 is expected to include #<Packages::Package id: 272, project_id: 772, created_at: "2023-10-20 08:58:27.077986000 +0000", upda...ge_type: "maven", creator_id: 1214, status: "default", last_downloaded_at: nil, status_message: nil>6319 with an invalid path6320 returns an empty array6321 with an uninstallable package6322 returns an empty array6323 within a group6324 behaves like handling valid and invalid paths6325 with a valid path6326 is expected to include #<Packages::Package id: 272, project_id: 772, created_at: "2023-10-20 08:58:27.077986000 +0000", upda...ge_type: "maven", creator_id: 1214, status: "default", last_downloaded_at: nil, status_message: nil>6327 with an invalid path6328 returns an empty array6329 with an uninstallable package6330 returns an empty array6331 across all projects6332 returns an empty array6333 versionless maven-metadata.xml package6334 without order by package file6335 is expected to contain exactly #<Packages::Package id: 274, project_id: 774, created_at: "2023-10-20 08:58:30.981747282 +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:58:31.407155204 +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:58:31.828486825 +0000", upda...ge_type: "maven", creator_id: 1221, status: "default", last_downloaded_at: nil, status_message: nil>6336 with order by package file6337 is expected to eq #<Packages::Package id: 276, project_id: 775, created_at: "2023-10-20 08:58:31.407155204 +0000", upda...ge_type: "maven", creator_id: 1219, status: "default", last_downloaded_at: nil, status_message: nil>6338Ci::StuckBuilds::DropPendingService6339 when job is pending6340 when job is not stuck6341 when job was updated_at more than 1 day ago6342 when created_at is the same as updated_at6343 behaves like job is dropped with failure reason6344 changes status6345 when job has data integrity problem6346 drops the job and logs the reason6347 when created_at is before updated_at6348 behaves like job is dropped with failure reason6349 changes status6350 when job has data integrity problem6351 drops the job and logs the reason6352 when job was updated less than 1 day ago6353 when created_at is the same as updated_at6354 behaves like job is unchanged6355 does not change status6356 when created_at is before updated_at6357 behaves like job is unchanged6358 does not change status6359 when job was updated more than 1 hour ago6360 when created_at is the same as updated_at6361 behaves like job is unchanged6362 does not change status6363 when created_at is before updated_at6364 behaves like job is unchanged6365 does not change status6366 when job is stuck6367 when job was updated_at more than 1 hour ago6368 when created_at is the same as updated_at6369 behaves like job is dropped with failure reason6370 changes status6371 when job has data integrity problem6372 drops the job and logs the reason6373 when created_at is before updated_at6374 behaves like job is dropped with failure reason6375 changes status6376 when job has data integrity problem6377 drops the job and logs the reason6378 when job was updated in less than 1 hour ago6379 when created_at is the same as updated_at6380 behaves like job is unchanged6381 does not change status6382 when created_at is before updated_at6383 behaves like job is unchanged6384 does not change status6385 when job is running6386 when job was updated_at more than an hour ago6387 behaves like job is unchanged6388 does not change status6389 when job was updated in less than 1 hour ago6390 behaves like job is unchanged6391 does not change status6392 when job is success6393 when created_at is the same as updated_at6394 behaves like job is unchanged6395 does not change status6396 when created_at is before updated_at6397 behaves like job is unchanged6398 does not change status6399 when job is skipped6400 when created_at is the same as updated_at6401 behaves like job is unchanged6402 does not change status6403 when created_at is before updated_at6404 behaves like job is unchanged6405 does not change status6406 when job is failed6407 when created_at is the same as updated_at6408 behaves like job is unchanged6409 does not change status6410 when created_at is before updated_at6411 behaves like job is unchanged6412 does not change status6413 when job is canceled6414 when created_at is the same as updated_at6415 behaves like job is unchanged6416 does not change status6417 when created_at is before updated_at6418 behaves like job is unchanged6419 does not change status6420 for deleted project6421 behaves like job is unchanged6422 does not change status6423Ci::PlayBridgeService#execute6424 when user can run the bridge6425 marks the bridge pending6426 updates bridge's user6427 enqueues Ci::CreateDownstreamPipelineWorker6428 when a subsequent job is skipped6429 marks the subsequent job as processable6430 when bridge is not playable6431 raises StateMachines::InvalidTransition6432 when user can not run the bridge6433 allows user with developer role to play a bridge6434Gitlab::Ci::Pipeline::Chain::Populate6435 when pipeline doesn not have seeds block6436 does not persist the pipeline6437 does not break the chain6438 populates pipeline with stages6439 correctly assigns user6440 has pipeline iid6441 when pipeline is empty6442 breaks the chain6443 appends an error about missing stages6444 wastes pipeline iid6445 increments the error metric6446 pipeline protect6447 when ref is protected6448 does not protect the pipeline6449 when ref is not protected6450 does not protect the pipeline6451 when pipeline has validation errors6452 breaks the chain6453 appends validation error6454 wastes pipeline iid6455 when there is a seed blocks present6456 when seeds block builds some resources6457 populates pipeline with resources described in the seeds block6458 has pipeline iid6459 when seeds block tries to persist some resources6460 raises error6461 when pipeline gets persisted during the process6462 raises error6463 when variables policy is specified6464 when using only/except build policies6465 behaves like a correct pipeline6466 populates pipeline according to used policies6467 when variables expression is specified6468 when pipeline iid is the subject6469 behaves like a correct pipeline6470 populates pipeline according to used policies6471Banzai::Filter::SyntaxHighlightFilter6472 when no language is specified6473 highlights as plaintext6474 escapes HTML tags6475 when contains mermaid diagrams6476 ignores mermaid blocks6477 when <pre> contains multiple <code> tags6478 ignores the block6479 when <pre><code> is a child of <pre><code> which is a child of a div6480 captures all text and doesn't fail trying to replace a node with no parent6481 when a valid language is specified6482 highlights as that language6483 escapes HTML tags6484 when an invalid language is specified6485 highlights as plaintext6486 escapes HTML tags6487 languages that should be passed through6488 when math is specified6489 highlights as plaintext but with the correct language attribute and class6490 escapes HTML tags6491 when mermaid is specified6492 highlights as plaintext but with the correct language attribute and class6493 escapes HTML tags6494 when plantuml is specified6495 highlights as plaintext but with the correct language attribute and class6496 escapes HTML tags6497 when suggestion is specified6498 highlights as plaintext but with the correct language attribute and class6499 escapes HTML tags6500 when sourcepos metadata is available6501 includes it in the highlighted code block6502 escape sourcepos metadata to prevent XSS6503 when Rouge lexing fails6504 highlights as plaintext6505 escapes HTML tags6506 when Rouge lexing fails after a retry6507 does not add highlighting classes6508 escapes HTML tags6509 behaves like html filter timeout6510 when rendering takes too long6511 times out6512Projects::Topic6513 is expected to be valid6514 modules6515 is expected to includes the Avatarable module6516 associations6517 is expected to have many project_topics6518 is expected to have many projects6519 validations6520 is expected to validate that :name cannot be empty/falsy6521 is expected to validate that :name is case-insensitively unique6522 is expected to validate that the length of :name is at most 2556523 is expected to validate that the length of :description is at most 10246524 is expected to validate that :title cannot be empty/falsy6525 is expected to validate that the length of :title is at most 2556526 is expected not to allow :name to be ‹"new\nline"›, producing a custom validation error on failure6527 is expected not to allow :name to be ‹"new\rline"›, producing a custom validation error on failure6528 is expected not to allow :name to be ‹"new\vline"›, producing a custom validation error on failure6529 scopes6530 without_assigned_projects6531 returns topics without assigned projects6532 order_by_non_private_projects_count6533 sorts topics by non_private_projects_count6534 reorder_by_similarity6535 sorts topics by similarity6536 #find_by_name_case_insensitive6537 returns topic with case insensitive name6538 #search6539 returns topics with a matching name6540 returns topics with a partially matching name6541 returns topics with a matching name regardless of the casing6542 #avatar_type6543 is true if avatar is image6544 is false if avatar is html page6545 #avatar_url6546 when avatar file is uploaded6547 shows correct avatar url6548 #title_or_name6549 returns title if set6550 returns name if title not set6551Ci::RefDeleteUnlockArtifactsWorker6552 #perform6553 when project exists6554 when user exists6555 when ci ref exists for project6556 calls the enqueue pipelines to unlock service6557 when ci ref does not exist for the given project6558 does not call the service6559 when same ref path exists for a different project6560 calls the enqueue pipelines to unlock service with the correct ref6561 when user does not exist6562 does not call the service6563 when project does not exist6564 does not call the service6565 behaves like an idempotent worker6566 is labeled as idempotent6567 performs multiple times sequentially without raising an exception6568 enqueues all pipelines for the ref to be unlocked6569Resolvers::Users::ParticipantsResolver6570 #resolve6571 when current user is not set6572 returns only publicly visible participants for this user6573 when current user does not have enough permissions6574 returns only publicly visible participants for this user6575 when current user has access to internal notes6576 returns all participants for this user6577 N+1 queries6578 does not execute N+1 for project relation6579 does not execute N+1 for system note metadata relation6580Deployments::HooksWorker6581 #perform6582 logs deployment and project IDs as metadata6583 executes project services for deployment_hooks6584 does not execute an inactive service6585 does not execute if a deployment does not exist6586 execute webhooks6587 behaves like worker with data consistency6588 .get_data_consistency_feature_flag_enabled?6589 returns true6590 .get_data_consistency6591 returns correct data consistency6592Ci::GenerateCoverageReportsService6593 #execute6594 when head pipeline has coverage reports6595 returns status and data6596 when head pipeline does not have a coverage report artifact6597 returns status and error message6598 when head pipeline has coverage reports and no merge request associated6599 returns status and error message6600 #latest?6601 when cache key is latest6602 is expected to be truthy6603 when head pipeline has been updated6604 is expected to be falsy6605 when cache key is empty6606 is expected to be falsy6607 when the pipeline has a child that is updated6608 is expected to be falsy6609Gitlab::Ci::Status::Build::FailedAllowed6610 #text6611 does not override status text6612 #icon6613 returns a warning icon6614 #label6615 returns information about failed but allowed to fail status6616 #group6617 returns status failed with warnings status group6618 action details6619 #has_action?6620 does not decorate action details6621 #action_path6622 does not decorate action path6623 #action_icon6624 does not decorate action icon6625 #action_title6626 does not decorate action title6627 #badge_tooltip6628 does override badge_tooltip6629 #status_tooltip6630 does override status_tooltip6631 .matches?6632 when build is failed6633 when build is allowed to fail6634 is a correct match6635 when build is not allowed to fail6636 is not a correct match6637 when build did not fail6638 when build is allowed to fail6639 is not a correct match6640 when build is not allowed to fail6641 is not a correct match6642Verify/Load-Performance-Testing.gitlab-ci.yml6643 the created pipeline6644 has no errors6645 on master6646 behaves like load_performance job on tag or branch6647 by default6648 on another branch6649 behaves like load_performance job on tag or branch6650 by default6651 on tag6652 behaves like load_performance job on tag or branch6653 by default6654 on merge request6655 has no jobs6656ErrorTracking::SentryClient::Projects6657 # order random6658 #projects6659 behaves like calls sentry api6660 calls sentry api6661 behaves like has correct return type6662 returns objects of type Gitlab::ErrorTracking::Project6663 behaves like has correct length6664 is expected to eq 26665 behaves like Sentry API response size limit6666 raises an exception when response is too large6667 essential keys missing in API response6668 raises exception6669 optional keys missing in sentry response6670 behaves like calls sentry api6671 calls sentry api6672 behaves like has correct return type6673 returns objects of type Gitlab::ErrorTracking::Project6674 behaves like has correct length6675 is expected to eq 16676 error object created from sentry response6677 sentry_project_object: :id, sentry_response: :id6678 is expected to eq "2"6679 sentry_project_object: :name, sentry_response: :name6680 is expected to eq "sentry-example"6681 sentry_project_object: :status, sentry_response: :status6682 is expected to eq "active"6683 sentry_project_object: :slug, sentry_response: :slug6684 is expected to eq "sentry-example"6685 sentry_project_object: :organization_name, sentry_response: [:organization, :name]6686 is expected to eq "Sentry"6687 sentry_project_object: :organization_id, sentry_response: [:organization, :id]6688 is expected to eq "1"6689 sentry_project_object: :organization_slug, sentry_response: [:organization, :slug]6690 is expected to eq "sentry"6691 redirects6692 behaves like no Sentry redirects6693 does not follow redirects6694 when exception is raised6695 behaves like maps Sentry exceptions6696 HTTParty::Error6697 is expected to raise ErrorTracking::SentryClient::Error with "Error when connecting to Sentry"6698 Net::OpenTimeout6699 is expected to raise ErrorTracking::SentryClient::Error with "Connection to Sentry timed out"6700 SocketError6701 is expected to raise ErrorTracking::SentryClient::Error with "Received SocketError when trying to connect to Sentry"6702 OpenSSL::SSL::SSLError6703 is expected to raise ErrorTracking::SentryClient::Error with "Sentry returned invalid SSL data"6704 Errno::ECONNREFUSED6705 is expected to raise ErrorTracking::SentryClient::Error with "Connection refused"6706 StandardError6707 is expected to raise ErrorTracking::SentryClient::Error with "Sentry request failed due to StandardError"6708Pajamas::ToggleComponent6709 with defaults6710 renders a toggle container with provided class6711 does not set a name6712 sets default is-checked attributes6713 sets default disabled attributes6714 sets default is-loading attributes6715 does not set a label6716 does not set a label position6717 with custom options6718 sets the custom class6719 sets the custom name6720 sets the custom is-checked attributes6721 sets the custom disabled attributes6722 sets the custom is-loading attributes6723 sets the custom label6724 sets the custom label position6725 sets custom data attributes6726 with setting label_position6727 position: :top, count: 16728 is expected to have visible css "[data-label-position='top']"6729 position: :left, count: 16730 is expected to have visible css "[data-label-position='left']"6731 position: :hidden, count: 16732 is expected to have visible css "[data-label-position='hidden']"6733 position: :bogus, count: 06734 is expected to have visible css "[data-label-position='bogus']"6735 position: "bogus", count: 06736 is expected to have visible css "[data-label-position='bogus']"6737 position: nil, count: 06738 is expected to have visible css "[data-label-position='']"6739Sortable6740 scopes6741 secondary ordering by id6742 allows secondary ordering by id ascending6743 allows secondary ordering by id descending6744 .order_by6745 does not call reorder in case of unrecognized ordering6746 ordering by id6747 ascending6748 descending6749 ordering by created day6750 ascending6751 descending6752 order by "date"6753 ordering by name6754 ascending6755 descending6756 ordering by Updated Time6757 ascending6758 descending6759 sorting groups6760 sorts groups by id6761 sorts groups by name via case-insensitive comparision6762 sorts groups by created_at6763 sorts groups by updated_at6764OauthAccessToken6765 scopes6766 .latest_per_application6767 returns only the latest token for each application6768 Doorkeeper secret storing6769 does not have a prefix6770 stores the token in hashed format6771 does not allow falling back to plaintext token comparison6772 finds a token by plaintext token6773 when the token is stored in plaintext6774 falls back to plaintext token comparison6775 .matching_token_for6776 does not find existing tokens6777 #expires_in6778 when token has expires_in value set6779 uses the expires_in value6780 when token has nil expires_in6781 uses default value6782Gitlab::Ci::Config::Entry::Rules::Rule::Changes6783 .new6784 when using a string array6785 is expected to be valid6786 when using an integer array6787 is expected not to be valid6788 returns errors6789 when using a string6790 is expected not to be valid6791 reports an error about invalid policy6792 when using a long array6793 is expected not to be valid6794 returns errors6795 when clause is empty6796 is expected to be valid6797 when policy strategy does not match6798 is expected not to be valid6799 returns information about errors6800 with paths6801 when paths is an array of strings6802 is expected to be valid6803 when paths is not an array6804 is expected not to be valid6805 returns information about errors6806 when paths is an array of integers6807 is expected not to be valid6808 returns information about errors6809 when paths is an array of long strings6810 is expected not to be valid6811 returns information about errors6812 when paths is nil6813 is expected not to be valid6814 returns information about errors6815 with paths and compare_to6816 is expected to be valid6817 when compare_to is not a string6818 is expected not to be valid6819 returns information about errors6820 #value6821 when using a string array6822 is expected to eq {:paths=>["app/", "lib/", "spec/", "other/*", "paths/**/*.rb"]}6823 with paths6824 is expected to eq {:paths=>["app/", "lib/"]}6825 with paths and compare_to6826 is expected to eq {:compare_to=>"branch1", :paths=>["app/", "lib/"]}6827Packages::Debian::SignDistributionService6828 behaves like Sign Distribution6829 for project detach=false6830 #execute6831 without an existing key6832 raises ArgumentError6833 with an existing key6834 returns the content signed6835 behaves like Sign Distribution6836 for project detach=true6837 #execute6838 without an existing key6839 raises ArgumentError6840 with an existing key6841 returns the content signed6842 behaves like Sign Distribution6843 for group detach=false6844 #execute6845 without an existing key6846 raises ArgumentError6847 with an existing key6848 returns the content signed6849 behaves like Sign Distribution6850 for group detach=true6851 #execute6852 without an existing key6853 raises ArgumentError6854 with an existing key6855 returns the content signed6856Gitlab::ImportExport::RepoRestorer6857 bundle a project Git repo6858 restores the repo successfully6859 when the repository already exists6860 deletes the existing repository before importing6861 restore a wiki Git repo6862 restores the wiki repo successfully6863 no wiki in the bundle6864 does not creates an empty wiki6865 when wiki already exists6866 does not cause an error when restoring6867Gitlab::Analytics::CycleAnalytics::BaseQueryBuilder6868 scopes query within the target project6869 when an unknown parent class is given6870 raises error6871 date range parameters6872 when filters by only the `from` parameter6873 is expected to eq 26874 when filters by both `from` and `to` parameters6875 is expected to eq 16876 invalid date range is provided6877 is expected to eq 06878 in progress filter6879 when the filter is present6880 returns only open items6881 when the filter is absent6882 returns finished items6883Atlassian::JiraConnect::Serializers::DeploymentEntity6884 # order random6885 environment type6886 tier: "other", env_type: "unmapped"6887 has the same type as the environment tier6888 #to_json6889 when the deployment does not belong to any Jira issue6890 can encode the object6891 is invalid, since it has no issue keys6892 when the deployment belongs to Jira issue6893 is valid according to the deployment info schema6894 #issue_keys6895 extracts issue keys from the commits6896 limits the number of commits scanned6897 when deploy happened at an older commit6898 extracts only issue keys from that commit or older6899 when the deployment has an associated merge request6900 includes issue keys extracted from the merge request6901 when there was a successful deploy to the environment6902 behaves like extracts only issue keys from commits made since that deployment6903 is expected to contain exactly "add a" and "add d"6904 when the deploy was for a different environment6905 behaves like ignores that deployment6906 is expected to contain exactly "add a", "add d", and "added"6907 when the deploy was for a different branch or tag6908 behaves like ignores that deployment6909 is expected to contain exactly "add a", "add d", and "added"6910 when the deploy was not successful6911 behaves like ignores that deployment6912 is expected to contain exactly "add a", "add d", and "added"6913 when the deploy commit cannot be found6914 behaves like ignores that deployment6915 is expected to contain exactly "add a", "add d", and "added"6916 when there is a more recent deployment6917 extracts only issue keys from commits made since that deployment6918 when deployment is an external deployment6919 does not raise errors when serializing6920MergeRequests::DeleteNonLatestDiffsService6921 #execute6922 schedules no removal if it is already cleaned6923 schedules no removal if it is empty6924 schedules no removal if there is no non-latest diffs6925Banzai::Filter::TableOfContentsFilter6926 does nothing when :no_header_anchors is truthy6927 does nothing with empty headers6928 processes h1 elements6929 processes h2 elements6930 processes h3 elements6931 processes h4 elements6932 processes h5 elements6933 processes h6 elements6934 anchor tag6935 has an `anchor` class6936 has a namespaced id6937 links to the non-namespaced id6938 generated IDs6939 translates spaces to dashes6940 squeezes multiple spaces and dashes6941 removes punctuation6942 removes any leading or trailing spaces6943 removes a product suffix6944 appends a unique number to duplicates6945 prepends a prefix to digits-only ids6946 supports Unicode6947 limits header href length with 255 characters6948 result6949 is contained within a `ul` element6950 contains an `li` element for each header6951 table of contents nesting6952 keeps list levels regarding header levels6953 header text contains escaped content6954 outputs escaped content6955AuthenticationEvent6956 associations6957 is expected to belong to user optional: true6958 validations6959 is expected to validate that :provider cannot be empty/falsy6960 is expected to validate that :user_name cannot be empty/falsy6961 is expected to validate that :result cannot be empty/falsy6962 is expected to allow :ip_address to be ‹"192.168.17.43"›6963 is expected to allow :ip_address to be ‹"2001:0db8:85a3:0000:0000:8a2e:0370:7334"›6964 is expected not to allow :ip_address to be ‹"invalid IP"›6965 scopes6966 .for_provider6967 returns events only for the specified provider6968 .ldap6969 returns all events for an LDAP provider6970 .providers6971 returns an array of distinct providers6972 .initial_login_or_known_ip_address?6973 on first login, when no record exists yet6974 is expected to eq true6975 on second login from the same ip address6976 is expected to eq true6977 on second login from another ip address6978 is expected to eq false6979 .most_used_ip_address_for_user6980 is expected to eq "::1"6981Gitlab::Asciidoc::IncludeProcessor6982 read_lines6983 when reading a file in the repository6984 returns the blob contents6985 allows at most N blob includes6986 when the blob does not exist6987 raises NoData6988 when there is a selector6989 selects the lines6990 when reading content from a URL6991 fetches the data using a GET request6992 allows at most N HTTP includes6993 when the URI returns 4046994 raises NoData6995 when there is a selector6996 selects the lines6997 #include_allowed?6998 allows the first include6999 allows the Nth include7000 disallows the Nth + 1 include7001 when allow-uri-read is nil7002 allows http includes7003 allows blob includes7004 when allow-uri-read is false7005 allows http includes7006 allows blob includes7007 when allow-uri-read is true7008 allows http includes7009 allows blob includes7010 without allow-uri-read7011 forbids http includes7012 allows blob includes7013Clusters::Agents::Authorizations::CiAccess::ConfigScopes7014 # order random7015 .with_available_ci_access_fields7016 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"=>{}}}>7017FinderWithGroupHierarchy7018 when specifying group7019 returns only the group by default7020 when specifying group_id7021 returns only the group by default7022 when including items from group ancestors7023 returns group and its ancestors7024 ignores groups which user can not read7025 returns them all when skip_authorization is true7026 when including items from group descendants7027 returns items from group and its descendants7028 ignores items from groups which user can not read7029 returns them all when skip_authorization is true7030 with N+1 query check7031 does not produce N+1 query7032gitlab:feature_categories:index7033 # order random7034 outputs objects by stage group7035Gitlab::Ci::Pipeline::Expression::Lexeme::And7036 .build7037 creates a new instance of the token7038 with non-evaluable operands7039 raises an operator error7040 .type7041 is an operator7042 .precedence7043 has a precedence7044 #evaluate7045 when left and right are truthy7046 left_value: true, right_value: 17047 is expected to be truthy7048 is expected to eq 17049 left_value: true, right_value: "a"7050 is expected to be truthy7051 is expected to eq "a"7052 left_value: 1, right_value: true7053 is expected to be truthy7054 is expected to eq true7055 left_value: 1, right_value: "a"7056 is expected to be truthy7057 is expected to eq "a"7058 left_value: "a", right_value: true7059 is expected to be truthy7060 is expected to eq true7061 left_value: "a", right_value: 17062 is expected to be truthy7063 is expected to eq 17064 when left or right is falsey7065 left_value: true, right_value: false7066 is expected to be falsey7067 left_value: true, right_value: nil7068 is expected to be falsey7069 left_value: false, right_value: true7070 is expected to be falsey7071 left_value: false, right_value: nil7072 is expected to be falsey7073 left_value: nil, right_value: true7074 is expected to be falsey7075 left_value: nil, right_value: false7076 is expected to be falsey7077 when left and right are falsey7078 left_value: false, right_value: nil7079 is expected to be falsey7080 is expected to eq false7081 left_value: nil, right_value: false7082 is expected to be falsey7083 is expected to eq nil7084RuboCop::Cop::InjectEnterpriseEditionModule7085 # order random7086 does not flag the use of `include_mod_with` on the last line7087 does not flag the use of `prepend_mod_with` on the last line7088 flags the use of `prepend_mod_with` in the middle of a file7089 disallows the use of include to inject an EE module7090 flags the use of `extend_mod_with` in the middle of a file7091 disallows the use of include_mod_with without a String7092 does not flag the use of `extend_mod_with` on the last line7093 disallows the use of extend to inject an EE module7094 disallows the use of prepend_mod_with without a String7095 disallows the use of extend_mod_with without a String7096 does not flag the use of `prepend_mod_with` as long as all injections are at the end of the file7097 flags the use of `include_mod_with` in the middle of a file7098 does not flag the double use of `X_mod_with` on the last line7099 disallows the use of prepend to inject an extension module7100 disallows the use of prepend to inject a QA::EE module7101 autocorrects offenses by just disabling the Cop7102Gitlab::Analytics::CycleAnalytics::Aggregated::BaseQueryBuilder7103 scopes the query for the given project7104 author_username param7105 returns stage events associated with the given author7106 returns empty result when unknown author is given7107 milestone_title param7108 returns stage events associated with the milestone7109 returns empty result when unknown milestone is given7110 label_name param7111 returns stage events associated with multiple labels7112 does not include records with partial label match7113 assignee_username param7114 returns stage events associated assignee7115 timestamp filtering7116 filters by the end event time range7117 when in_progress items are requested7118 filters by the start event time range7119Ci::CreatePipelineService7120 when the variable is set7121 uses the evaluated variable7122 when the tag is composed by two variables7123 uses the evaluated variables7124 when the variable is not set7125 uses the variable as a regular string7126 when the tag uses group variables7127 uses the evaluated variables7128 when the tag has the same variable name defined for both group and project7129 uses the project variable instead of group due to variable precedence7130 with parallel:matrix config7131 uses the evaluated variables7132Namespaces::UserNamespacePolicy7133 with no user7134 is expected to be banned7135 regular user7136 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_projects7137 owner7138 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_projects7139 user who has exceeded project limit7140 is expected to be disallowed :create_projects7141 is expected to be disallowed :transfer_projects7142 is expected to be disallowed :import_projects7143 bot user7144 is expected to be disallowed :create_projects7145 is expected to be disallowed :transfer_projects7146 is expected to be disallowed :import_projects7147 admin7148 when admin mode is enabled7149 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_projects7150 when admin mode is disabled7151 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_projects7152 create_jira_connect_subscription7153 admin7154 when admin mode enabled7155 is expected to be allowed :create_jira_connect_subscription7156 when admin mode disabled7157 is expected to be disallowed :create_jira_connect_subscription7158 owner7159 is expected to be allowed :create_jira_connect_subscription7160 other user7161 is expected to be disallowed :create_jira_connect_subscription7162 create projects7163 when user can create projects7164 is expected to be allowed :create_projects7165 when user cannot create projects7166 is expected to be disallowed :create_projects7167 import projects7168 when user can import projects7169 is expected to be allowed :import_projects7170 when user cannot create projects7171 is expected to be disallowed :import_projects7172Integrations::ChatMessage::DeploymentMessage7173 behaves like Integrations::ChatMessage7174 when input contains link markup7175 strips all link markup characters7176 #pretext7177 returns a message with the data returned by the deployment data builder7178 returns a message for a successful deployment7179 returns a message for a failed deployment7180 returns a message for a canceled deployment7181 returns a message for a deployment to another environment7182 returns a message for a deployment with any other status7183 returns a message for a running deployment7184 #attachments7185 returns attachments for a failed deployment7186 returns attachments for a canceled deployment7187 uses a neutral color for a deployment with any other status7188 without markdown7189 returns attachments with the data returned by the deployment data builder7190 with markdown7191 returns attachments with the data returned by the deployment data builder7192 #attachment_color7193 status: "success", expected_color: "good"7194 returns the correct color7195 status: "canceled", expected_color: "warning"7196 returns the correct color7197 status: "failed", expected_color: "danger"7198 returns the correct color7199 status: "blub", expected_color: "#334455"7200 returns the correct color7201Types::Ci::JobTraceType7202 # order random7203 has the correct fields7204 htmlSummary7205 when trace contains few lines7206 when last_lines is set to 107207 shows the correct trace contents7208 when trace contains many lines7209 when last_lines is not set7210 shows the last 10 lines of trace contents7211 when last_lines is set to a negative number7212 shows the last line of trace contents7213 when last_lines is set to 107214 shows the correct trace contents7215 when last_lines is set to 1507216 shows the last 100 lines of trace contents7217 when trace contains long lines7218 when last_lines is lower than 16KB7219 shows the whole lines7220 when last_lines is higher than 16KB7221 shows only the latest byte7222 when trace is cut in middle of a line7223 shows only the latest byte7224 when trace is cut at end of a line7225 shows only the latest byte7226 when trace contains multi-bytes UTF-87227 when cut in the middle of a codepoint7228 shows a single "invalid utf-8" symbol7229BackgroundMigration::CiDatabaseWorker7230 behaves like it runs background migration jobs7231 defining the job attributes7232 defines the data_consistency as always (PENDING: Skipping because ci is shared or doesn't not exist)7233 defines the retry count in sidekiq_options (PENDING: Skipping because ci is shared or doesn't not exist)7234 defines the feature_category as database (PENDING: Skipping because ci is shared or doesn't not exist)7235 defines the urgency as throttled (PENDING: Skipping because ci is shared or doesn't not exist)7236 defines the loggable_arguments (PENDING: Skipping because ci is shared or doesn't not exist)7237 .tracking_database7238 does not raise an error (PENDING: Skipping because ci is shared or doesn't not exist)7239 overrides the method to return the tracking database (PENDING: Skipping because ci is shared or doesn't not exist)7240 .minimum_interval7241 returns 2 minutes (PENDING: Skipping because ci is shared or doesn't not exist)7242 #perform7243 when execute_background_migrations feature flag is disabled7244 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)7245 when disallow_database_ddl_feature_flags feature flag is disabled7246 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)7247 when execute_background_migrations feature flag is enabled7248 performs jobs using the coordinator for the worker (PENDING: Skipping because ci is shared or doesn't not exist)7249 when lease can be obtained7250 sets up the shared connection before checking replication (PENDING: Skipping because ci is shared or doesn't not exist)7251 performs a background migration (PENDING: Skipping because ci is shared or doesn't not exist)7252 can run scheduled job and retried job concurrently (PENDING: Skipping because ci is shared or doesn't not exist)7253 sets the class that will be executed as the caller_id (PENDING: Skipping because ci is shared or doesn't not exist)7254 when lease_attempts is 17255 performs a background migration (PENDING: Skipping because ci is shared or doesn't not exist)7256 when lease not obtained (migration of same class was performed recently)7257 reschedules the migration and decrements the lease_attempts (PENDING: Skipping because ci is shared or doesn't not exist)7258 when lease_attempts is 17259 reschedules the migration and decrements the lease_attempts (PENDING: Skipping because ci is shared or doesn't not exist)7260 when lease_attempts is 07261 gives up performing the migration (PENDING: Skipping because ci is shared or doesn't not exist)7262 when database is not healthy7263 reschedules a migration if the database is not healthy (PENDING: Skipping because ci is shared or doesn't not exist)7264 increments the unhealthy counter (PENDING: Skipping because ci is shared or doesn't not exist)7265 when lease_attempts is 07266 gives up performing the migration (PENDING: Skipping because ci is shared or doesn't not exist)7267BulkImports::RepositoryBundleExportService7268 #execute7269 when repository exists7270 bundles repository to disk7271 when repository does not exist7272 does not bundle repository to disk7273 when repository is empty7274 does not bundle repository to disk7275 when repository exists7276 bundles repository to disk7277 when repository does not exist7278 does not bundle repository to disk7279 when repository is empty7280 does not bundle repository to disk7281Resolvers::GroupMembersResolver7282 is expected to have nullable GraphQL type GroupMemberConnection7283 behaves like querying members with a group7284 #resolve7285 finds all resource members7286 with sort options7287 searches users by user name7288 with search7289 when the search term matches a user7290 searches users by user name7291 when the search term does not match any user7292 is empty7293 when user can not see resource members7294 generates an error7295Clusters::Agents::ActivityEventPolicy7296 rules7297 reporter7298 is expected to be disallowed :admin_cluster7299 is expected to be disallowed :read_cluster7300 developer7301 is expected to be disallowed :admin_cluster7302 is expected to be allowed :read_cluster7303 maintainer7304 is expected to be allowed :admin_cluster7305 is expected to be allowed :read_cluster7306Resolvers::BaseResolver7307 .singular_type7308 for a connection of scalars7309 is expected to eq GraphQL::Types::Int7310 for a connection of objects7311 is expected to eq #<Class:0x00007b8333d51ec0>7312 for a list type7313 is expected to eq GraphQL::Types::String7314 for a scalar type7315 is expected to eq GraphQL::Types::Boolean7316 .single7317 returns a subclass from the resolver7318 has the correct (singular) type7319 returns the same subclass every time7320 returns a resolver that gives the first result from the original resolver7321 .when_single7322 does not apply the block to the resolver7323 applies the block to the single version of the resolver7324 multiple when_single blocks7325 applies both blocks to the single version of the resolver7326 inheritance7327 applies both blocks to the single version of the resolver7328 when the resolver returns early7329 runs correctly in our test framework7330 single selects the first early return value7331 last selects the last early return value7332 .last7333 returns a subclass from the resolver7334 returns the same subclass every time7335 returns a resolver that gives the last result from the original resolver7336 when field is a connection7337 increases complexity based on arguments7338 does not increase complexity when filtering by iids7339 #object7340 returns object7341 when object is a presenter7342 returns presented object7343 #offset_pagination7344 is sugar for OffsetPaginatedRelation.new7345Gitlab::Ci::Status::Stage::PlayManual7346 #action_icon7347 is expected to eq "play"7348 #action_button_title7349 is expected to eq "Play all manual"7350 #action_title7351 is expected to eq "Play all manual"7352 #action_path7353 is expected to eq "/namespace820/project-830/-/pipelines/269/stages/test/play_manual"7354 #action_method7355 is expected to eq :post7356 .matches?7357 when stage is skipped7358 is expected to be truthy7359 when stage is manual7360 is expected to be truthy7361 when stage is scheduled7362 is expected to be truthy7363 when stage is success7364 and does not have manual builds7365 is expected to be falsy7366Branches::ValidateNewService7367 #execute7368 validation7369 returns error with an invalid branch name7370 returns success with a valid branch name7371 branch exist7372 returns error when branch exists7373 returns success when branch name is available7374Mutations::Security::CiConfiguration::ConfigureSast7375 is expected to require graphql authorizations :push_code7376 #resolve7377 generates an error if the resource is not accessible to the user7378 when user does not have enough permissions7379 generates an error7380 when user is a maintainer of a different project7381 generates an error7382 when the user does not have permission to create a new branch7383 returns an array of errors7384 when the user can create a merge request7385 when service successfully generates a path to create a new merge request7386 returns a success path7387 when service can not generate any path to create a new merge request7388 returns an array of errors7389Ci::CompareReportsBaseService7390 #latest?7391 when cache key is latest7392 is expected to be truthy7393 when cache key is outdated7394 is expected to be falsy7395 when cache key is empty7396 is expected to be falsy7397 #execute7398 when base_pipeline is running7399 is expected to eq {:key=>[277, 2023-10-20 09:01:03.532875681 +0000, 278, 2023-10-20 09:01:03.571935647 +0000], :status=>:parsing}7400Gitlab::Patch::Prependable7401 a class including a concern prepending a concern7402 returns values from prepended module ee7403 has the expected ancestors7404 prepends only once even if called twice7405 overriding methods7406 returns values from the class7407 a class prepending a concern prepending a concern7408 returns values from prepended module ee7409 has the expected ancestors7410 prepends only once7411 a class prepending a concern7412 returns values from prepended module ee7413 has the expected ancestors7414 prepends only once7415 simple case7416 class methods7417 has a method7418 can execute a method7419 instance methods7420 has a method7421 chains a method execution7422 having two prepended blocks7423 raises an error7424 the extra hack for override verification7425 when ENV["STATIC_VERIFICATION"] is not defined7426 does not extend ClassMethods onto the defining module7427 when ENV["STATIC_VERIFICATION"] is defined7428 does extend ClassMethods onto the defining module7429Gitlab::Ci::Runner::Metrics7430 #increment_runner_authentication_success_counter7431 increments count for same type7432 does not increment count for different type7433 does not increment failure count7434 throws ArgumentError for invalid runner type7435 #increment_runner_authentication_failure_counter7436 increments count7437 does not increment success count7438Sidebars::UserProfile::Menus::FollowingMenu7439 # order random7440 behaves like User profile menu7441 does not contain any sub menu7442 renders the correct link7443 renders the correct title7444 renders the correct icon7445 renders the correct avatar7446 defines correct active route7447 renders if user is logged in7448 when viewed user is blocked7449 when user is not logged in7450 is not allowed to view the menu item7451 when current user has permission7452 is allowed to view the menu item7453 when current user does not have permission7454 is not allowed to view the menu item7455 when viewed user is banned7456 when user is not logged in7457 is not allowed to view the menu item7458 when current user has permission7459 is allowed to view the menu item7460 when current user does not have permission7461 is not allowed to view the menu item7462 behaves like Followers/followees counts7463 when there are items7464 renders the pill7465 returns the count7466 when there are no items7467 does not render the pill7468Gitlab::Utils::JsonSizeEstimator7469 # order random7470 is expected to match json bytesize of {:a=>{:b=>{:c=>[1, 2, 3], :e=>2023-10-20 08:29:36.304057706 +0000, :f=>nil}}}7471 is expected to match json bytesize of [[[]]]7472 is expected to match json bytesize of nil7473 is expected to match json bytesize of {"狸"=>"狸"}7474 calls #to_s on unknown object7475 is expected to match json bytesize of7476 is expected to match json bytesize of {:a=>{}}7477 is expected to match json bytesize of {}7478 is expected to match json bytesize of {100=>500}7479 is expected to match json bytesize of 1, "str", 3.14, and ["str", {:a=>-1}]7480Preloaders::UserMaxAccessLevelInProjectsPreloader7481 without preloader7482 runs some queries7483 #execute7484 when user is present7485 avoids N+1 queries7486 when projects is an array of IDs7487 avoids N+1 queries7488 when projects is a relation including project_authorizations7489 avoids N+1 queries7490 when user is not present7491 does not avoid N+1 queries7492Namespaces::ProjectNamespace7493 relationships7494 is expected to have one project inverse_of => project_namespace7495 is expected to eq #<Project id:892 namespace840/project-850>>7496 validations7497 is expected not to validate that :owner cannot be empty/falsy7498 when deleting project namespace7499 also deletes associated project7500 .create_from_project!7501 when namespace does not exist7502 new project_namespace is not saved7503 for new record when namespace exists7504 syncs the project attributes to project namespace7505 when project has an unsaved project namespace7506 saves the same project namespace7507 #sync_attributes_from_project7508 syncs visibility_level if project is new7509 with existing project7510 syncs the relevant keys from the project7511Resolvers::Ci::RunnersResolver7512 #resolve7513 when user cannot see runners7514 returns Gitlab::Graphql::Errors::ResourceNotAvailable7515 when user can see runners7516 when admin mode setting is disabled7517 returns all the runners7518 when admin mode setting is enabled7519 when in admin mode7520 returns all the runners7521 when not in admin mode7522 returns Gitlab::Graphql::Errors::ResourceNotAvailable7523 with obj not set to nil7524 raises an error7525 Allowed query arguments7526 with active filter7527 calls RunnersFinder with expected arguments7528 with both active and paused filter7529 calls RunnersFinder with expected arguments7530 with paused filter7531 calls RunnersFinder with expected arguments7532 with neither paused or active filters7533 calls RunnersFinder with expected arguments7534 with an invalid version filter parameter7535 ignores the parameter and returns runners7536MarkdownContentRewriterService7537 #initialize7538 raises an error if source_parent is not a Project7539 raises an error if field does not have cached markdown7540 #execute7541 when content does not need a rewrite7542 returns original content and cached html7543 when content needs a rewrite7544 calls the rewriter classes successfully7545 when content has references7546 rewrites content7547 when content contains an upload7548 rewrites content7549 #safe_to_copy_markdown?7550 when content has references7551 is expected to eq false7552 when content has uploaded file references7553 is expected to eq false7554 when content does not have references or uploads7555 is expected to eq true7556Clusters::AgentTokens::TrackUsageService7557 #execute7558 when last_used_at was updated recently7559 updates cache but not database7560 when last_used_at was not updated recently7561 updates cache and database7562 with invalid token7563 still updates caches and database7564 agent is not connected7565 creates an activity event7566 agent is connected7567 does not create an activity event7568Grafana::TimeWindow7569 #formatted7570 is expected to eq {:end=>"2019-03-17T13:10:00Z", :start=>"2019-03-17T05:10:00Z"}7571 #in_milliseconds7572 is expected to eq {:from=>1552799400000, :to=>1552828200000}7573 when non-unix parameters are provided7574 is expected to eq {:from=>1552799400000, :to=>1552828200000}7575Grafana::RangeWithDefaults7576 #to_hash7577 is expected to eq {:from=>#<Grafana::Timestamp:0x00007b832b709638 @time=2019-03-17 05:10:00 +0000>, :to=>#<Grafana::Timestamp:0x00007b832b709318 @time=2019-03-17 13:10:00 +0000>}7578 when only "to" is provided7579 has the expected properties7580 when only "from" is provided7581 has the expected properties7582 when no parameters are provided7583 has the expected properties7584Grafana::Timestamp7585 #formatted7586 is expected to eq "2019-03-17T05:10:00Z"7587 #to_ms7588 is expected to eq 15527994000007589 .from_ms_since_epoch7590 is expected to be a kind of Grafana::Timestamp7591 when the input is not a unix-ish timestamp7592 raises an error7593Gitlab::Kubernetes7594 #container_exec_url7595 is expected to eq "wss"7596 is expected to eq "example.com"7597 is expected to eq "/api/v1/namespaces/default/pods/pod1/exec"7598 is expected to eq "container=container1&stderr=true&stdin=true&stdout=true&tty=true&command=sh&command=-c&command=bash+%7C%7C+sh"7599 with a HTTP API URL7600 is expected to eq "ws"7601 with a path prefix in the API URL7602 is expected to eq "/prefix/api/v1/namespaces/default/pods/pod1/exec"7603 with arguments that need urlencoding7604 is expected to eq "/api/v1/namespaces/default%20namespace/pods/pod%201/exec"7605 is expected to match /\Acontainer=container\+1&/7606 #filter_by_label7607 returns matching labels7608 #filter_by_annotation7609 returns matching labels7610 #filter_by_project_environment7611 returns matching env label7612 #filter_by_legacy_label7613 returns matching labels7614 #to_kubeconfig7615 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"}}]}7616 when CA PEM is not provided7617 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"}}]}7618 when token is not provided7619 is expected to be nil7620 #add_terminal_auth7621 adds authentication parameters to a hash7622Mutations::MergeRequests::SetSubscription7623 is expected to require graphql authorizations :update_subscription7624 when user does not have access to the project7625 behaves like a subscribeable not accessible graphql resource7626 raises an error if the resource is not accessible to the user7627 when user is developer member of the project7628 behaves like a subscribeable graphql resource7629 subscribes to the resource7630 when passing subscribe as false7631 unsubscribes from the discussion7632 when the project is public7633 behaves like a subscribeable graphql resource7634 subscribes to the resource7635 when passing subscribe as false7636 unsubscribes from the discussion7637Types::UntrustedRegexp7638 is expected to eq "UntrustedRegexp"7639 is expected to eq "A regexp containing patterns sourced from user input"7640 .coerce_input7641 input: ".*", expected_result: ".*"7642 with input .*7643 is expected to eq ".*"7644 input: "(.*)", expected_result: "(.*)"7645 with input (.*)7646 is expected to eq "(.*)"7647 input: "[test*]+", expected_result: "[test*]+"7648 with input [test*]+7649 is expected to eq "[test*]+"7650 input: "*v1", expected_result: :raise_error7651 with input *v17652 raises a coercion error7653 input: "[test*", expected_result: :raise_error7654 with input [test*7655 raises a coercion error7656 input: "test*+", expected_result: :raise_error7657 with input test*+7658 raises a coercion error7659 .coerce_result7660 input: "1", expected_result: "1"7661 with input 17662 is expected to eq "1"7663 input: 1, expected_result: "1"7664 with input 17665 is expected to eq "1"7666 input: true, expected_result: "true"7667 with input true7668 is expected to eq "true"7669Users::LastPushEventService7670 #cache_last_push_event7671 caches the event for the event's project and current user7672 caches the event for the origin project when pushing to a fork7673 #last_event_for_user7674 returns the last push event for the current user7675 returns nil when no push event could be found7676 #last_event_for_project7677 returns the last push event for the given project7678 returns nil when no push event could be found7679 #find_cached_event7680 with a non-existing cache key7681 returns nil7682 with an existing cache key7683 returns a PushEvent when no merge requests exist for the event7684 removes the cache key when no event could be found and returns nil7685Gitlab::Database::LoadBalancing::PrimaryHost7686 #connection7687 returns a connection from the pool7688 #release_connection7689 does nothing7690 #enable_query_cache!7691 does nothing7692 #disable_query_cache!7693 does nothing7694 #query_cache_enabled7695 delegates to the primary connection pool7696 #disconnect!7697 does nothing7698 #offline!7699 logs the event but does nothing else7700 #online?7701 returns true7702 #primary_write_location7703 raises NotImplementedError7704 #caught_up?7705 returns true7706 #database_replica_location7707 raises NotImplementedError7708Gitlab::SidekiqMiddleware::AdminMode::Client7709 yields block7710 user is a regular user7711 no admin mode field in payload7712 user is an administrator7713 admin mode disabled7714 no admin mode field in payload7715 admin mode enabled7716 when sidekiq required context not set7717 no admin mode field in payload7718 when user stored in current request7719 has admin mode field in payload7720 when bypassing session7721 has admin mode field in payload7722 admin mode setting disabled7723 yields block7724 no admin mode field in payload7725Create base work item types in production7726 behaves like work item base types importer7727OK7728 creates all base work item types if they don't exist7729OK7730 creates all default widget definitions7731OK7732 upserts base work item types if they already exist7733OK7734 upserts default widget definitions if they already exist and type changes7735OK7736 does not change default widget definitions if they already exist with changed disabled status7737OK7738 executes single INSERT query per types and widget definitions7739 when some base types exist7740OK7741 inserts all types and does nothing if some already existed7742 when some widget definitions exist7743OK7744 inserts all widget definitions and does nothing if some already existed7745JsonSchemaValidator7746 #validates_each7747 when filename is set7748 when data is valid7749 returns no errors7750 when data is invalid7751 returns json schema is invalid7752 when filename is not set7753 raises an ArgumentError7754 when filename is invalid7755 raises a FilenameError7756 hash_conversion option7757 when hash_conversion is enabled7758 returns no errors7759Packages::Rubygems::ExtractionWorker7760 #perform7761 without errors7762 processes the gem7763 with controlled errors7764 handling metadata with invalid size7765 behaves like handling error7766 mark the package as errored7767 handling a file error7768 behaves like handling error7769 mark the package as errored7770 with uncontrolled errors7771 handling Zip::Error7772 behaves like handling error7773 mark the package as errored7774 handling StandardError7775 behaves like handling error7776 mark the package as errored7777 returns when there is no package file7778 returns without action7779ProtectedTags::UpdateService7780 #execute7781 updates a protected tag7782 when updating protected tag with a name that contains HTML tags7783 updates a protected tag7784 without admin_project permissions7785 raises error7786Gitlab::JiraImport::AdvanceStageWorker7787 # order random7788 behaves like Gitlab::Import::AdvanceStage7789 #perform7790 when the project no longer exists7791 does not perform any work7792 when there are remaining jobs7793 reschedules itself7794 when the project import is not running7795 does not perform any work7796 clears the JobWaiter cache7797 when there are no remaining jobs7798 schedules the next stage7799 raises KeyError when the stage name is invalid7800 on worker timeouts7801 refreshes timeout and updates counter if jobs have been processed7802 converts string timeout argument to time7803 with an optimistic strategy7804 advances to next stage7805 with a pessimistic strategy7806 logs error and fails import7807 #wait_for_jobs7808 waits for jobs to complete and returns a new pair of keys to wait for7809Preloaders::UsersMaxAccessLevelByProjectPreloader7810 # order random7811 #execute7812 avoids N+1 queries7813 preloads the max access level used by project policies7814Database::CiNamespaceMirrorsConsistencyCheckWorker7815 #perform7816 executes the consistency check on namespaces7817 logs should contain the detailed mismatches7818 reports the differences to the logs7819 calls the consistency_fix_service to fix the inconsistencies7820Gitlab::WorkItems::WorkItemHierarchy7821 # order random7822 #base_and_ancestors7823 includes the base and its ancestors7824 can find ancestors upto a certain level7825 when same_type option is used7826 includes the base and its ancestors7827 hierarchy_order option7828 for :asc7829 orders by child to ancestor7830 for :desc7831 orders by ancestor to child7832 #base_and_descendants7833 includes the base and its descendants7834 when same_type option is used7835 includes the base and its ancestors7836 when with_depth is true7837 includes depth in the results7838Gitlab::Ci::Config::Interpolation::Block7839 # order random7840 properly evaluates the access pattern7841 knows its content7842 .match7843 matches each block in a string7844 matches an empty block7845 when functions are specified in the block7846 matches each block in a string7847 when functions are specified in the block7848 returns the modified value7849 when there is an access error7850 returns the access error7851 when there is a function error7852 returns the function error7853 when multiple functions are specified7854 executes each function in the specified order7855 when the data has inconsistent spacing7856 executes each function in the specified order7857 when a stack of functions errors in the middle7858 does not modify the value7859 when too many functions are specified7860 returns error7861Mail STARTTLS patch7862 # order random7863 does not override default constants values7864 ssl: false, tls: false, enable_starttls: true, enable_starttls_auto: false, smtp_tls: false, smtp_starttls_mode: :always7865 sets TLS and STARTTLS settings properly7866 enable_starttls_auto setting7867 uses default for enable_starttls_auto7868 when set to false7869 overrides default and sets value7870 ssl: nil, tls: false, enable_starttls: nil, enable_starttls_auto: true, smtp_tls: false, smtp_starttls_mode: :auto7871 sets TLS and STARTTLS settings properly7872 ssl: false, tls: nil, enable_starttls: :auto, enable_starttls_auto: nil, smtp_tls: false, smtp_starttls_mode: :auto7873 sets TLS and STARTTLS settings properly7874 ssl: false, tls: nil, enable_starttls: :always, enable_starttls_auto: nil, smtp_tls: false, smtp_starttls_mode: :always7875 sets TLS and STARTTLS settings properly7876 ssl: true, tls: nil, enable_starttls: nil, enable_starttls_auto: nil, smtp_tls: true, smtp_starttls_mode: false7877 sets TLS and STARTTLS settings properly7878 ssl: false, tls: false, enable_starttls: false, enable_starttls_auto: nil, smtp_tls: false, smtp_starttls_mode: false7879 sets TLS and STARTTLS settings properly7880 when enable_starttls and tls are enabled7881 raises an argument exception7882 ssl: nil, tls: false, enable_starttls: nil, enable_starttls_auto: nil, smtp_tls: false, smtp_starttls_mode: :auto7883 sets TLS and STARTTLS settings properly7884 ssl: false, tls: nil, enable_starttls: false, enable_starttls_auto: false, smtp_tls: false, smtp_starttls_mode: false7885 sets TLS and STARTTLS settings properly7886Ci::ArtifactBlob7887 #id7888 returns a hash of the path7889 #name7890 returns the entry name7891 #path7892 returns the entry path7893 #size7894 returns the entry size7895 #mode7896 returns the entry mode7897 #external_storage7898 returns :build_artifact7899 #external_url7900 with not allowed extension7901 is expected to be nil7902 with allowed extension7903 is expected to eq "http://namespace898.example.com/-/project1/-/jobs/1004/artifacts/other_artifacts_0.1.2/doc_sample.txt"7904 when port is configured7905 is expected to eq "http://namespace898.example.com:1234/-/project1/-/jobs/1004/artifacts/other_artifacts_0.1.2/doc_sample.txt"7906 #external_link?7907 with not allowed extensions7908 returns false7909 with allowed extensions7910 returns true7911Resolvers::BlameResolver7912 # order random7913 #resolve7914 when unauthorized7915 generates an error7916 when authorized7917 when feature is disabled7918 returns nothing7919 when feature is enabled7920 returns blame object7921 when from_line is below 17922 behaves like argument error7923 raises an ArgumentError7924 when to_line is below 17925 behaves like argument error7926 raises an ArgumentError7927 when to_line less than from_line7928 returns blame object7929Gitlab::RouteMap7930 #initialize7931 when the data is not YAML7932 raises an error7933 when the data is not a YAML array7934 raises an error7935 when an entry is not a hash7936 raises an error7937 when an entry does not have a source key7938 raises an error7939 when an entry does not have a public key7940 raises an error7941 when an entry source is not a valid regex7942 raises an error7943 when all is good7944 returns a route map7945 #public_path_for_source_path7946 returns the public path for a provided source path7947 malicious regexp7948 takes under a second7949MergeRequests::CleanupRefWorker7950 # order random7951 does remove all merge request refs7952 when only is :train7953 does remove only car merge request train ref7954 when max retry attempts reach7955 does not raise error7956Abuse::UserTrustScore7957 # order random7958 #remove_old_scores7959 if max events is exceeded7960 removes the oldest events7961 #spam_score7962 when the user is a spammer7963 returns the expected score7964 when the user is not a spammer7965 returns the expected score7966 #arkose_custom_score7967 when the user has an arkose custom risk score7968 returns the latest score7969 when the user does not have an arkose custom risk score7970 defaults to zero7971 #spammer?7972 when the user is a spammer7973 classifies the user as a spammer7974 when the user is not a spammer7975 does not classify the user as a spammer7976 #telesign_score7977 when the user has a telesign risk score7978 returns the latest score7979 when the user does not have a telesign risk score7980 defaults to zero7981 #arkose_global_score7982 when the user has an arkose global risk score7983 returns the latest score7984 when the user does not have an arkose global risk score7985 defaults to zero7986LooksAhead7987 preloads labels on issues7988 issues fewer queries than the naive approach7989 behaves like a working query on the test schema7990 has a good test setup7991Namespaces::UpdateRootStatisticsWorker7992 enqueues ScheduleAggregationWorker7993 behaves like subscribes to event7994 consumes the published event7995 behaves like an idempotent worker7996 is labeled as idempotent7997 performs multiple times sequentially without raising an exception7998StuckExportJobsWorker7999 with started export status8000 behaves like project export job detection8001 when the job has completed8002 when the export status was already updated8003 does not mark the export as failed8004 when the export status was not updated8005 marks the project as failed8006 when the job is not in queue and db record in queued state8007 marks the project as failed8008 when the job is running in Sidekiq8009 does not mark the project export as failed8010RuboCop::Cop::PreferClassMethodsOverModule8011 # order random8012 doesn't flag violation when not using either class_methods or ClassMethods8013 doesn't flag violation when module is not extending ActiveSupport::Concern8014 doesn't flag violation when ClassMethods is used inside a class8015 flags violation when using module ClassMethods and corrects8016 doesn't flag violation when using class_methods8017Banzai::Filter::ImageLazyLoadFilter8018 adds a class attribute8019 appends to the current class attribute8020 adds a async decoding attribute8021 transforms the image src to a data-src8022 works with external images8023Sidebars::UserProfile::Menus::SnippetsMenu8024 # order random8025 behaves like User profile menu8026 does not contain any sub menu8027 renders the correct link8028 renders the correct title8029 renders the correct icon8030 renders the correct avatar8031 defines correct active route8032 renders if user is logged in8033 when viewed user is blocked8034 when user is not logged in8035 is not allowed to view the menu item8036 when current user has permission8037 is allowed to view the menu item8038 when current user does not have permission8039 is not allowed to view the menu item8040 when viewed user is banned8041 when user is not logged in8042 is not allowed to view the menu item8043 when current user has permission8044 is allowed to view the menu item8045 when current user does not have permission8046 is not allowed to view the menu item8047API::Entities::Clusters::Agents::Authorizations::CiAccess8048 # order random8049 implicit authorization8050 includes shared fields8051 project authorization8052 includes shared fields8053 group authorization8054 includes shared fields8055Ci::UpdatePendingBuildService8056 #execute8057 validations8058 when model is invalid8059 raises an error8060 when params is invalid8061 raises an error8062 when model is a group with pending builds8063 updates all pending builds8064 when model is a project with pending builds8065 updates all pending builds8066RuboCop::Cop::Migration::MigrationRecord8067 # order random8068 outside of a migration8069 behaves like a disabled cop8070 does not register any offenses8071 in migration8072 in an old migration8073 behaves like a disabled cop8074 does not register any offenses8075 that is recent8076 adds an offense if inheriting from ActiveRecord::Base8077 adds an offense if inheriting from ::ActiveRecord::Base8078 in migration8079 in an old migration8080 behaves like a disabled cop8081 does not register any offenses8082 that is recent8083 adds an offense if inheriting from ApplicationRecord8084 adds an offense if inheriting from ::ApplicationRecord8085 outside of a migration8086 behaves like a disabled cop8087 does not register any offenses8088Gitlab::Utils::Uniquify8089 # order random8090 #string8091 returns the given string if it does not exist8092 returns the given string with a counter attached if the string exists8093 increments the counter for each candidate string that also exists8094 allows to pass an initial value for the counter8095 allows passing in a base function that defines the location of the counter8096Packages::Cleanup::DeleteOrphanedDependenciesWorker8097 # order random8098 is expected to includes the CronjobQueue module8099 is expected to be truthy8100 #perform8101 deletes only orphaned dependencies8102 executes 3 queries8103 when the worker is running for more than the max time8104 sets the last processed dependency id in redis cache8105 when the worker reaches the maximum number of batches8106 iterates over only 1 batch8107 sets the last processed dependency id in redis cache8108 when the worker finishes processing in less than the max time8109 clears the last processed last_processed_packages_dependency_id from redis cache8110 when logging extra metadata8111 logs the last proccessed id & the deleted rows count8112Tooling::Mappings::GraphqlBaseTypeMappings8113 # order random8114 #filter_files8115 when no files were changed8116 returns an empty array8117 when GraphQL files were changed8118 returns the path to the GraphQL files8119 when files are deleted8120 returns an empty array8121 #execute8122 when no GraphQL files were changed8123 does not change the output file8124 when some GraphQL files were changed8125 when none of those GraphQL types are included in other GraphQL types8126 does not change the output file8127 when the GraphQL types are included in other GraphQL types8128 writes the correct specs in the output8129 #types_hierarchies8130 when no types are implementing other types8131 returns nothing8132 when types are implementing other types8133 when FOSS8134 returns only FOSS types8135 when EE8136 returns the correct children types8137 when JH8138 returns the correct children types8139 #filename_to_spec_filename8140 when the spec file exists8141 returns the correct spec filename8142 when the spec file does not exist8143 returns nil8144 #filename_to_class_name8145 returns the correct class name8146API::Helpers::PaginationStrategies8147 #paginate_with_strategies8148 yields paginated relation8149 calls #finalize with first value returned from block8150 returns whatever the block returns8151 with paginator_params8152 correctly passes multiple parameters8153 #paginator8154 offset pagination8155 when keyset pagination is available and enforced for the relation8156 when a request scope is given8157 when the scope limit is exceeded8158 renders a 405 error8159 when keyset pagination is not enforced8160 returns no errors8161 when the scope limit is not exceeded8162 delegates to OffsetPagination8163 when a request scope is not given8164 when the default limits are exceeded8165 renders a 405 error8166 when the default limits are not exceeded8167 delegates to OffsetPagination8168 when keyset pagination is not available for the relation8169 delegates to OffsetPagination8170 for keyset pagination8171 when keyset pagination is available8172 delegates to Pager8173 when keyset pagination is not available8174 renders a 501 error8175Gitlab::UsageMetricGenerator8176 Creating metric instrumentation files8177 creates CE metric instrumentation files using the template8178 with EE flag true8179 creates EE metric instrumentation files using the template8180 for database type8181 creates the metric instrumentation file using the template8182 for numbers type8183 creates the metric instrumentation file using the template8184 with type option missing8185 raises an ArgumentError8186 with type option value not included in approved superclasses8187 raises an ArgumentError8188 without operation for database metric8189 raises an ArgumentError8190 with wrong operation for database metric8191 raises an ArgumentError8192 without operation for numbers metric8193 raises an ArgumentError8194 with wrong operation for numbers metric8195 raises an ArgumentError8196RedisCacheable8197 #cached_attribute8198 gets the cache attribute8199 #cache_attributes8200 sets the cache attributes8201 with existing cached attributes8202 sets the cache attributes8203 #merge_cache_attributes8204 with different attribute values8205 merges the cache attributes with existing values8206 with no new or changed attribute values8207 does not try to set Redis key8208 #cached_attr_reader8209 always returns the latest values8210 when there is no cached value8211 reads the attribute8212 when there is a cached value8213 reads the cached value8214 #cast_value_from_cache8215 with runner contacted_at8216 converts cache string to appropriate type8217Resolvers::ProjectJobsResolver8218 #resolve8219 with authorized user8220 with statuses argument8221 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>8222 with multiple statuses8223 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>8224 without statuses argument8225 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>8226 with unauthorized user8227 is expected to be nil8228Ci::CompareAccessibilityReportsService8229 #execute8230 when head pipeline has accessibility reports8231 returns status and data8232 when base and head pipelines have accessibility reports8233 returns status and data8234Ci::DestroySecureFileService8235 user is a maintainer8236 destroys the secure file8237 user is a developer8238 raises an exception8239Packages::Nuget::PackageMetadataPresenter8240 #json_url8241 is expected to end with "/api/v4/projects/944/packages/nuget/metadata/NugetPackage4/1.0.28.json"8242 #archive_url8243 is expected to end with "/api/v4/projects/944/packages/nuget/download/NugetPackage4/1.0.28/NugetPackage4.1.0.28.nupkg"8244 with package files pending destruction8245 is expected not to include "pending_destruction.nupkg"8246 #catalog_entry8247 returns an entry structure8248Gitlab::Tracking::ServicePingContext8249 # order random8250 #init8251 with valid configuration8252 data_source: :redis, event: "some_event"8253 does not raise errors8254 data_source: :redis_hll, event: "some_event"8255 does not raise errors8256 with invalid configuration8257 data_source: :redis, event: nil8258 does not raise errors8259 data_source: :redis_hll, event: nil8260 does not raise errors8261 data_source: :random, event: "some_event"8262 does not raise errors8263 #to_context8264 for redis_hll data source8265 contains event_name8266 for redis data source8267 contains event_name8268Users::UnblockService8269 # order random8270 #execute8271 when successful8272 is expected to eq true8273 change the user's state8274 saves a custom attribute8275 when failed8276 returns error result8277 does not change the user's state8278Gitlab::Graphql::Authorize::ObjectAuthorization8279 #ok?8280 when there are no abilities8281 is expected to be ok #<Double (anonymous)> and #<Double (anonymous)>8282 when no ability should be allowed8283 is expected not to be ok #<struct Foo x=0, y=0> and #<Double :User>8284 when go_fast should be allowed8285 is expected not to be ok #<struct Foo x=100, y=0> and #<Double :User>8286 when go_fast and go_slow should be allowed8287 is expected to be ok #<struct Foo x=100, y=100> and #<Double :User>8288 when the object delegates to another subject8289 is expected to be ok #<Double :Proxy> and #<Double :User>8290 is expected not to be ok #<Double :Proxy> and #<Double :User>8291FlushCounterIncrementsWorker8292 #perform8293 commits increments to database8294 when model class does not exist8295 does nothing8296 when record does not exist8297 does nothing8298devise/shared/_signup_omniauth_provider_list8299 # order random8300 when feature flag is false8301 is expected to have text "Create an account using:"8302 behaves like sso buttons have snowplow tracking8303 contains tracking attributes8304 when feature flag is true8305 is expected to have text "Register with:"8306 behaves like sso buttons have snowplow tracking8307 contains tracking attributes8308Resolvers::ErrorTracking::SentryErrorsResolver8309 is expected to have nullable GraphQL type SentryErrorConnection8310 #resolve8311 with insufficient user permission8312 returns nil8313 with sufficient permission8314 when after arg given8315 gives the cursor arg8316 when no issues fetched8317 returns nil8318 when issues returned8319 sets the issues8320 sets the pagination variables8321 returns an externally paginated array8322Groups::SettingsHelper8323 #group_settings_confirm_modal_data8324 prevent_delete_response: true, is_button_disabled: "true", form_value_id: nil8325 returns expected parameters8326 prevent_delete_response: true, is_button_disabled: "true", form_value_id: "fake_form_id"8327 returns expected parameters8328 prevent_delete_response: false, is_button_disabled: "false", form_value_id: nil8329 returns expected parameters8330 prevent_delete_response: false, is_button_disabled: "false", form_value_id: "fake_form_id"8331 returns expected parameters8332API::Helpers::MergeRequestsHelpers8333 #handle_merge_request_errors!8334 when merge request is valid8335 returns nil8336 when merge request is invalid8337 responds to a project_access error with unprocessable_entity8338 responds to a branch_conflict error with unprocessable_entity8339 responds to a validate_fork error with unprocessable_entity8340 responds to a base error with unprocessable_entity8341 responds to a validate_branches error with conflict8342 responds with bad request8343Gitlab::SidekiqMiddleware::WorkerContext::Client8344 #call8345 applies a context for jobs scheduled in batch8346 root_caller_id8347 uses caller_id of the current context8348 uses root_caller_id instead of caller_id of the current context8349 when the feature category is set in the context_proc8350 takes the feature category from the worker, not the caller8351 takes the feature category from the caller if the worker is not owned8352 does not set any explicit feature category for mailers8353 when the feature category is already set in the surrounding block8354 takes the feature category from the worker, not the caller8355 takes the feature category from the caller if the worker is not owned8356Tooling::Helm3Client8357 #releases8358Running command: `helm list --max 256 --offset 0 --output json`8359 raises an error if the Helm command fails8360Running command: `helm list --max 256 --offset 0 --output json`8361Ignoring this JSON parsing error: unexpected token at ''8362Response was:8363 calls helm list with default arguments8364Running command: `helm list --max 256 --offset 0 --output json --deployed`8365Ignoring this JSON parsing error: unexpected token at ''8366Response was:8367 calls helm list with extra arguments8368Running command: `helm list --max 256 --offset 0 --output json --deployed`8369Running command: `helm list --max 256 --offset 256 --output json --deployed`8370 returns a list of Release objects8371Running command: `helm list --max 256 --offset 0 --output json`8372Running command: `helm list --max 256 --offset 256 --output json`8373Running command: `helm list --max 256 --offset 512 --output json`8374 automatically paginates releases8375 #delete8376Running command: `helm uninstall --namespace my-release my-release`8377 raises an error if the Helm command fails8378Running command: `helm uninstall --namespace my-release my-release`8379 calls helm uninstall with default arguments8380 with multiple release names8381Running command: `helm uninstall --namespace my-release my-release`8382 raises an error if the Helm command fails8383Running command: `helm uninstall --namespace namespace my-release`8384Running command: `helm uninstall --namespace namespace my-release-2`8385 calls helm uninstall with multiple release names and a namespace8386Running command: `helm uninstall --namespace my-release my-release`8387Running command: `helm uninstall --namespace my-release-2 my-release-2`8388 calls helm uninstall with multiple release names and no namespace8389Gitlab::Changelog::Release8390 #to_markdown8391 when there are no entries8392 includes a notice about the lack of entries8393 when all data is present8394 includes all data8395 when no merge request is present8396 doesn't include a merge request link8397 when the author is not a contributor8398 doesn't include the author8399 when the author should always be credited8400 includes the author8401 when a category has no entries8402 isn't included in the output8403 when template parser raises an error8404 raises a Changelog error8405 #header_start_position8406 returns a regular expression for finding the start of a release section8407Gitlab::Database::Migrations::SwapColumnsDefault8408 # order random8409 #execute8410 when defaults are static values8411main: -- columns(:_test_swap_columns_and_defaults)8412main: -> 0.0039s8413main: -- columns(:_test_swap_columns_and_defaults)8414main: -> 0.0038s8415main: -- change_column_default(:_test_swap_columns_and_defaults, :integer_column, "100")8416main: -> 0.0052s8417main: -- change_column_default(:_test_swap_columns_and_defaults, :bigint_column, "8")8418main: -> 0.0054s8419 swaps the default correctly8420 when default is sequence8421main: -- columns(:_test_swap_columns_and_defaults)8422main: -> 0.0036s8423main: -- columns(:_test_swap_columns_and_defaults)8424main: -> 0.0034s8425main: -- quote_table_name("_test_swap_columns_and_defaults_seq")8426main: -> 0.0003s8427main: -- quote_table_name(:_test_swap_columns_and_defaults)8428main: -> 0.0001s8429main: -- quote_column_name(:bigint_column)8430main: -> 0.0001s8431main: -- execute("ALTER SEQUENCE \"_test_swap_columns_and_defaults_seq\" OWNED BY \"_test_swap_columns_and_defaults\".\"bigint_column\"")8432main: -> 0.0017s8433main: -- change_column_default(:_test_swap_columns_and_defaults, :integer_column, "100")8434main: -> 0.0054s8435main: -- change_column_default(:_test_swap_columns_and_defaults, :bigint_column, #<Proc:0x00007b83322a0018 /builds/gitlab-org/gitlab/lib/gitlab/database/migrations/swap_columns_default.rb:46 (lambda)>)8436main: -> 0.0051s8437 swaps the default correctly8438 when defaults are the same8439main: -- columns(:_test_swap_columns_and_defaults)8440main: -> 0.0038s8441main: -- columns(:_test_swap_columns_and_defaults)8442main: -> 0.0042s8443 does nothing8444GroupCustomAttribute8445 assocations8446 is expected to belong to group required: false8447 validations8448 is expected to validate that :group cannot be empty/falsy8449 is expected to validate that :key cannot be empty/falsy8450 is expected to validate that :value cannot be empty/falsy8451 is expected to validate that :key is case-sensitively unique within the scope of :group_id8452RuboCop::Cop::QA::FabricateUsage8453 # order random8454 does not register an offense when using fabricate_via_api! for an unenforced resource8455 registers an offense for groups8456 registers an offense when using fabricate_via_api! for a valid resource8457Banzai::Filter::MarkdownFilter8458 markdown engine from context8459 finds the correct engine8460 defaults to the DEFAULT_ENGINE8461 raise error for unrecognized engines8462 code block8463 adds language to lang attribute when specified8464 does not add language to lang attribute when not specified8465 works with utf8 chars in language8466 works with additional language parameters8467 source line position8468 defaults to add data-sourcepos8469 disables data-sourcepos8470 footnotes in tables8471 processes footnotes in table cells8472Gitlab::Utils::DeepSize8473 # order random8474 is expected to eq 1008475 is expected to eq 10485768476 #initialize8477 when max_size is nil8478 sets max_size to DEFAULT_MAX_SIZE8479 when max_depth is nil8480 sets max_depth to DEFAULT_MAX_DEPTH8481 #valid?8482 when data within size and depth limits8483 is expected to be valid8484 when data not within size limit8485 is expected not to be valid8486 when data not within depth limit8487 is expected not to be valid8488GroupDeployKeysGroup8489 Associations8490 is expected to belong to group_deploy_key required: false8491 is expected to belong to group required: false8492 Validation8493 is expected to validate that :group_id cannot be empty/falsy8494 is expected to validate that :group_deploy_key cannot be empty/falsy8495Gitlab::Instrumentation::Redis8496 behaves like aggregation of redis storage data8497 get_request_count sum8498 sums data from all Redis storages8499 behaves like aggregation of redis storage data8500 get_cross_slot_request_count sum8501 sums data from all Redis storages8502 behaves like aggregation of redis storage data8503 get_allowed_cross_slot_request_count sum8504 sums data from all Redis storages8505 behaves like aggregation of redis storage data8506 query_time sum8507 sums data from all Redis storages8508 behaves like aggregation of redis storage data8509 read_bytes sum8510 sums data from all Redis storages8511 behaves like aggregation of redis storage data8512 write_bytes sum8513 sums data from all Redis storages8514 .payload8515 returns payload filtering out zeroed values8516 .detail_store8517 returns a flat array of detail stores with the storage name added to each item8518Gitlab::TimeTrackingFormatter8519 #parse8520 positive durations8521 is expected to eq 120008522 negative durations8523 is expected to eq -120008524 durations with months8525 uses our custom conversions8526 when the duration is nil8527 returns nil8528 when the duration is zero8529 when keep_zero is false8530 returns nil8531 when keep_zero is true8532 returns zero8533 #output8534 time_tracking_limit_to_hours setting is true8535 is expected to eq "49h 40m"8536 time_tracking_limit_to_hours setting is false8537 is expected to eq "1w 1d 1h 40m"8538 handles negative time input8539 is expected to eq "-1w 1d 1h 40m"8540Gitlab::Ci::Pipeline::Preloader8541 .preload!8542 preloads commit authors, number of warnings and ref commits8543 returns original collection8544 when preloading multiple commits8545 preloads all commits once8546Gitlab::Database::HealthStatus::Signals8547 # order random8548 with Stop signal it should stop and log8549 behaves like health status signal8550 #log_info?8551 returns the log signal8552 #stop?8553 returns the stop signal8554 with Unknown signal it should only log and not stop8555 behaves like health status signal8556 #log_info?8557 returns the log signal8558 #stop?8559 returns the stop signal8560 with Normal signal it should not stop and log8561 behaves like health status signal8562 #log_info?8563 returns the log signal8564 #stop?8565 returns the stop signal8566 with NotAvailable signal it should not stop and log8567 behaves like health status signal8568 #log_info?8569 returns the log signal8570 #stop?8571 returns the stop signal8572Mutations::SavedReplies::Create8573 #resolve8574 when feature is disabled8575 raises Gitlab::Graphql::Errors::ResourceNotAvailable8576 when feature is enabled for current user8577 when service fails to create a new saved reply8578 is expected to be nil8579 is expected to contain exactly "Content can't be blank" and "Name can't be blank"8580 when service successfully creates a new saved reply8581 is expected to eq "save_reply_name"8582 is expected to eq "Save Reply Content"8583 is expected to be empty8584Spam::AkismetMarkAsSpamService8585 #execute8586 when the spammable object is not submittable8587 does not submit as spam8588 spam is submitted successfully8589 submits as spam8590 updates the spammable object's user agent detail as being submitted as spam8591 when Akismet does not consider it spam8592 does not update the spammable object as spam8593Gitlab::Usage::Metrics::Aggregates::Sources::RedisHll8594 .calculate_events_union8595 calls Gitlab::UsageDataCounters::HLLRedisCounter.calculate_events_union8596 prevents from using fallback value as valid union result8597 .calculate_metrics_intersections8598 uses values returned by union to compute the intersection8599 raises error if union is < 08600PipelineNotificationWorker8601 #execute8602 calls NotificationService#pipeline_finished when the pipeline exists8603 does nothing when the pipeline does not exist8604 when the user is blocked8605 does nothing8606 behaves like worker with data consistency8607 .get_data_consistency_feature_flag_enabled?8608 returns true8609 .get_data_consistency8610 returns correct data consistency8611Gitlab::Memory::Watchdog::EventReporter8612 # order random8613 #logger8614 when logger is not provided8615 uses default Gitlab::AppLogger8616 #threshold_violated8617 increments violations counter8618 does not increment handled violations counter8619 does not log violation8620 #stopped8621 logs stop message once8622 #started8623 logs start message once8624 #strikes_exceeded8625 increments handled violations counter8626 logs violation8627RuboCop::Cop::ActiveRecordAssociationReload8628 # order random8629 when using on self8630 registers an offense on reload usage8631 does not register an offense on reset usage8632 when using ActiveRecord::Relation8633 registers an offense on reload usage8634 does not register an offense on reset usage8635 when using ActiveRecord::Base8636 registers an offense on reload usage8637 does not register an offense on reset usage8638Gitlab::HealthChecks::Middleware8639 #call8640 handling /readiness requests8641 handles the request8642 handling /liveness requests8643 handles the request8644 handling other requests8645 forwards them to the next middleware8646Gitlab::Session8647 uses the current thread as a data store8648 #with_session8649 sets session hash8650 restores current store after8651WorkItems::ParentLinks::BaseService8652 # order random8653 #execute8654 when user has sufficient permissions8655 raises NotImplementedError8656Integrations::IntegrationList8657 # order random8658 #to_array8659 returns array of Integration, columns, and values8660RuboCop::Cop::Migration::AddConcurrentIndex8661 # order random8662 when outside of migration8663 registers no offense8664 when in migration8665 registers an offense when add_concurrent_index is used inside a change method8666 registers no offense when add_concurrent_index is used inside an up method8667StubSaasFeatures8668 # order random8669 #stub_saas_features8670 subsequent run changes state8671 handles multiple features8672 when checking global state8673 feature_value: true8674 is expected to eq true8675 feature_value: false8676 is expected to eq false8677 when value is not boolean8678 raises an error8679WorkItems::Widgets::StartAndDueDate8680 .type8681 is expected to eq :start_and_due_date8682 .quick_action_params8683 is expected to include :due_date8684 #type8685 is expected to eq :start_and_due_date8686 #start_date8687 is expected to eq Fri, 20 Oct 20238688 #due_date8689 is expected to eq Fri, 27 Oct 20238690Resolvers::ErrorTracking::SentryErrorCollectionResolver8691 is expected to have nullable GraphQL type SentryErrorCollection8692 #resolve8693 returns an error collection object8694 provides the service url8695 provides the project8696BulkImports::Common::Pipelines::EntityFinisher8697 updates the entity status to finished8698 when entity is in a final finished or failed state8699 does nothing8700 does nothing8701 when all entity trackers failed8702 marks entity as failed8703Gitlab::Git::Patches::Patch8704 #size8705 is correct8706RuboCop::Cop::Gitlab::DelegatePredicateMethods8707 # order random8708 registers no offense with predicate method without allow_nil8709 registers offense for single predicate method with allow_nil:true8710 registers no offense with predicate method with allow_nil:false8711 registers no offense for non-predicate method with allow_nil:true8712 registers offense for multiple predicate methods with allow_nil:true8713ResolvesProject8714 can resolve projects by path8715 can resolve projects by id8716 complains when both are present8717 complains when neither is present8718Clusters::Agents::Authorizations::CiAccess::ImplicitAuthorization8719 # order random8720 is expected to eq {}8721 is expected to eq 148722 is expected to eq #<Clusters::Agent id: 14, created_at: "2023-10-20 09:02:43.990643194 +0000", updated_at: "2023-10-20 ...194 +0000", project_id: 958, name: "agent-14", created_by_user_id: 1586, has_vulnerabilities: false>8723 is expected to eq #<Project id:958 namespace962/project-951>>8724Packages::Npm::DeprecatePackageService8725 # order random8726 #execute8727 when passing deprecatation message8728 adds or updates the deprecated field8729 executes 5 queries8730 when passing deprecated as empty string8731 removes the deprecation warning8732 when passing async: true to execute8733 calls the worker and return8734RssHelper8735 #rss_url_options8736 when signed in8737 includes the current_user's feed_token8738 when signed out8739 does not have a feed_token8740 when feed_token disabled8741 does not have a feed_token8742Gitlab::IncidentManagement::PagerDuty::IncidentIssueDescription8743 # order random8744 #to_s8745 returns description8746 when created_at is missing8747 description contains current time in UTC8748 when there are several assignees8749 assignees is a list of links8750 when there is an impacted service8751 impacted service is a single link8752Mutations::Security::CiConfiguration::BaseSecurityAnalyzer8753 raises a NotImplementedError error if the resolve method is called on the base class8754Mutations::Boards::Update8755 is expected to require graphql authorizations :admin_issue_board8756 #resolve8757 when the user cannot admin the board8758 raises an error8759 when user can update board8760 updates board with correct values8761Gitlab::Redis::ClusterUtil8762 # order random8763 .cluster?8764 when MultiStore8765 pri_store: :cluster, sec_store: :cluster, expected_val: true8766 returns expected value8767 pri_store: :cluster, sec_store: :single, expected_val: true8768 returns expected value8769 pri_store: :single, sec_store: :cluster, expected_val: true8770 returns expected value8771 pri_store: :single, sec_store: :single, expected_val: false8772 returns expected value8773 when is not Redis::Cluster8774 returns false8775 when is Redis::Cluster8776 returns true8777ActionMailer hooks8778 smime signature interceptor8779 is disabled by default8780 interceptor testbed8781 email_enabled: false, email_smime_enabled: false, smime_interceptor_enabled: false8782 is enabled depending on settings8783 email_enabled: false, email_smime_enabled: true, smime_interceptor_enabled: false8784 is enabled depending on settings8785 email_enabled: true, email_smime_enabled: false, smime_interceptor_enabled: false8786 is enabled depending on settings8787 email_enabled: true, email_smime_enabled: true, smime_interceptor_enabled: true8788 is enabled depending on settings8789Gitlab::Audit::DeployKeyAuthor8790 #initialize8791 sets correct attributes8792 sets default name when it is not provided8793Gitlab::Tracking::Destinations::Snowplow8794 when snowplow is enabled8795 #event8796 sends event to tracker8797 increase total snowplow events counter8798 when snowplow is not enabled8799 #event8800 does not send event to tracker8801 callbacks8802 on success8803 increase gitlab_successful_snowplow_events_total counter8804 on failure8805 increase gitlab_failed_snowplow_events_total counter and logs failures8806API::Base8807 declare feature categories at handler level for all routes8808 sets feature category for a particular route8809 sets request urgency for a particular route8810 declare feature categories at route level8811 sets feature category for a particular route8812 sets request urgency for a particular route8813 declare feature categories at both handler level and route level8814 sets feature category for a particular route8815 sets target duration for a particular route8816Google::Apis::Core::HttpCommand8817 with a successful response8818 returns the response body if block not present8819 calls block if present8820 retries with max elapsed_time and retries8821RepositoryCheckQueue8822 disables retrying of failed jobs8823Gitlab::Database::PostgresAutovacuumActivity8824 is expected to be a kind of Gitlab::Database::SharedModel(abstract)8825 .for_tables8826 returns autovacuum activity for queries tables8827 executes the query8828 .wraparound_prevention8829 is expected to match (a hash including {"wraparound_prevention" => true})8830Gitlab::Ci::Config::Header::Spec8831 # order random8832 when spec contains default values for inputs8833 passes validations8834 returns the value8835 when spec contains a required value8836 parses the config correctly8837 when spec contains unknown keywords8838 fails validations8839 returns the value8840Gitlab::Ci::Config::Interpolation::Context8841 # order random8842 #to_h8843 returns the context hash8844 #depth8845 returns a max depth of the hash8846 .fabricate8847 when given an unexpected object8848 raises an ArgumentError8849 when interpolation context is too complex8850 raises an exception8851 .new8852 returns variables as a Variables::Collection object8853SystemCheck::SidekiqCheck8854 #multi_check8855 fails when no worker processes are running8856 fails when more than one cluster process is running8857 succeeds when one cluster process and one or more worker processes are running8858 when only a worker process is running8859 fails with the right message for systemd8860 fails with the right message for sysvinit8861API::Entities::ProjectJobTokenScope8862 # order random8863 #as_json8864 includes basic fields8865 includes basic fields8866RuboCop::Cop::AvoidBecomes8867 # order random8868 flags the use of becomes with a dynamic parameter8869 flags the use of becomes with a constant parameter8870 flags the use of becomes with a namespaced constant parameter8871Gitlab::Config::Entry::Unspecified8872 #valid?8873 delegates method to entry8874 #errors8875 delegates method to entry8876 #value8877 delegates method to entry8878 #specified?8879 is always false8880Gitlab::Memory::Watchdog::Handlers::NullHandler8881 # order random8882 #call8883 does nothing8884devise/confirmations/almost_there8885 # order random8886 register again prompt8887 is expected to have visible link "register again with a different email" with href "/users/sign_up"8888 confirmations text8889 when correct email8890 is expected to have text "Please check your email (こんにちは@test) to confirm your account"8891 when random text8892 is expected to have text "Please check your email to confirm your account"8893Gitlab::JsonLogger8894 behaves like a json logger8895 formats strings8896 formats hashes8897 #file_name8898 raises error when file_name_noext not implemented8899 returns log file name when file_name_noext is implemented8900Gitlab::GithubImport::SingleEndpointNotesImporting8901 #parent_collection8902 is expected to raise NotImplementedError8903 #parent_imported_cache_key8904 is expected to raise NotImplementedError8905 #page_counter_id8906 is expected to raise NotImplementedError8907BulkImports::Groups::Graphql::GetProjectsQuery8908 has a valid query8909 with invalid variables8910 raises an error8911 #data_path8912 returns data path8913 #page_info_path8914 returns pagination information path8915Analytics::CycleAnalytics::RuntimeLimiter8916 # order random8917 #over_time?8918 returns true if over time8919 #elapsed_time8920 reports monotonic elapsed time since instantiation8921 #was_over_time?8922 returns true if over_time? returned true at an earlier step8923Gitlab::Bullet8924 with bullet installed8925 #enabled?8926 with env enabled8927 is enabled8928 with env disabled8929 is not enabled8930 #configure_bullet?8931 with config enabled8932 is configurable8933 with config disabled8934 is not configurable8935Types::Ci::Config::JobRestrictionType8936 is expected to eq "CiConfigJobRestriction"8937 exposes the expected fields8938profiles/audit_log8939 when user has successful and failure events8940 only shows successful events8941Types::Projects::ServiceType8942 is expected to have graphql fields :type, :service_type, and :active8943 .resolve_type8944 resolves the corresponding type for objects8945Mattermost::Command8946 #create8947 for valid trigger word8948 returns a token8949 for error message8950 raises an error with message8951Gitlab::GithubImport::Importer::Attachments::BaseImporter8952 # order random8953 #each_object_to_import8954 with not implemented #collection interface8955 raises NotImplementedError8956Types::Ci::Catalog::ResourceSortEnum8957 # order random8958 is expected to eq "CiCatalogResourceSort"8959 exposes all the existing catalog resource sort orders8960Gitlab::Middleware::RackMultipartTempfileFactory8961 for a multipart request8962 immediately unlinks the temporary file8963 processes the request as normal8964 for a regular request8965 does nothing8966Presentable8967 #present8968 returns a presenter8969 takes optional attributes8970Packages::Downloadable8971 # order random8972 with a package8973 #touch_last_downloaded_at8974 updates the downloaded_at8975Tooling::Danger::Clickhouse8976 # order random8977 #changes8978 with click_house gem changes8979 returns only clickhouse changes8980 with clickhouse data changes8981 returns only clickhouse changes8982 with clickhouse app changes8983 returns only clickhouse changes8984Types::CustomerRelations::ContactSortEnum8985 is expected to eq "ContactSort"8986 exposes all the contact sort values8987 behaves like common sort values8988 exposes all the existing common sort values8989Gitlab::Kubernetes::Kubeconfig::Entry::Cluster8990 #to_h8991 is expected to eq {:cluster=>{:server=>"url"}, :name=>"name"}8992 with a certificate8993 is expected to eq {:cluster=>{:"certificate-authority-data"=>"Y2VydGlmaWNhdGU=", :server=>"url"}, :name=>"name"}8994Gitlab::Utils::Measuring8995 # order random8996 #with_measuring8997 measures and logs data8998 with base_log_data provided8999 logs includes base data9000DatabaseReflection9001 .reflect9002 returns a Reflection instance9003 memoizes the result9004ProtectedRefsHelper9005 # order random9006 #protected_access_levels_for_dropdowns9007 returns roles for {create,push,merge}_access_levels9008 #protected_access_level_dropdown_roles9009 returns dropdown options for each protected ref access level9010Types::BranchProtections::PushAccessLevelType9011 # order random9012 is expected to have graphql fields :access_level, :access_level_description, and :deploy_key9013 is expected to require graphql authorizations :read_protected_branch9014Gitlab::Graphql::Timeout9015 inherits from9016 sends the error to our GraphQL logger9017Sidebars::Groups::SuperSidebarMenus::DeployMenu9018 # order random9019 has title and sprite_icon9020 defines list of NilMenuItem placeholders9021Types::Organizations::GroupSortEnum9022 # order random9023 is expected to eq "OrganizationGroupSort"9024 exposes all the organization groups sort values9025SystemCheck::App::GitlabResqueConfigExistsCheck9026 # order random9027 #check?9028 when config/resque.yml exists9029 is expected to eq true9030 when config/resque.yml does not exist9031 is expected to eq false9032Types::Ci::GroupType9033 is expected to eq "CiGroup"9034 exposes the expected fields9035Gitlab::Kubernetes::Kubeconfig::Entry::Context9036 #to_h9037 is expected to eq {:context=>{:cluster=>"cluster", :user=>"user"}, :name=>"name"}9038 with a namespace9039 is expected to eq {:context=>{:cluster=>"cluster", :namespace=>"namespace", :user=>"user"}, :name=>"name"}9040API::Entities::Projects::RepositoryStorageMove9041 #as_json9042 includes basic fields9043CreateMergeRequestDiscussion9044 # order random9045 #execute9046 requests commit_merge_requests from the gitlab client9047FasterCacheKeys9048 #cache_key9049 returns a String9050Gitlab::ErrorTracking::Processor::ContextPayloadProcessor9051 .call9052 merges the context payload into event payload9053Types::Packages::Maven::MetadatumType9054 includes maven metadatum fields9055Types::Security::ReportTypeEnum9056 exposes all security report types9057Notes::RenderService9058 #execute9059 renders a Note9060MicrosoftTeams::Activity9061 #prepare9062 returns the correct JSON object9063processing of SAMLResponse in dependencies9064 can extract AuthnContextClassRef from SAMLResponse param9065AccessibilityErrorEntity9066 #as_json9067 when accessibility contains an error9068 contains correct accessibility error details9069auto_explain log contains 1853 entries for main, writing to /builds/gitlab-org/gitlab/auto_explain/rspec-unit-pg14-as-if-foss-single-db-28-28.329.main.ndjson.gz9070took 39.0665131359071Pending: (Failures listed here are expected and do not affect your suite's status)9072 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 pipeline9073 # Not yet implemented9074 # ./spec/services/ci/create_pipeline_service_spec.rb:12429075 2) 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 table9076 # Skipping because ci is shared or doesn't not exist9077 # ./spec/lib/gitlab/database/migration_helpers/automatic_lock_writes_on_tables_spec.rb:439078 3) 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 deleting9079 # Skipping because ci is shared or doesn't not exist9080 # ./spec/lib/gitlab/database/migration_helpers/automatic_lock_writes_on_tables_spec.rb:579081 4) 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 table9082 # Skipping because ci is shared or doesn't not exist9083 # ./spec/lib/gitlab/database/migration_helpers/automatic_lock_writes_on_tables_spec.rb:439084 5) 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 table9085 # Skipping because ci is shared or doesn't not exist9086 # ./spec/lib/gitlab/database/migration_helpers/automatic_lock_writes_on_tables_spec.rb:439087 6) 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 WithLockRetries9088 # Skipping because ci is shared or doesn't not exist9089 # ./spec/lib/gitlab/database/migration_helpers/automatic_lock_writes_on_tables_spec.rb:749090 7) 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 table9091 # Skipping because ci is shared or doesn't not exist9092 # ./spec/lib/gitlab/database/migration_helpers/automatic_lock_writes_on_tables_spec.rb:439093 8) 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 table9094 # Skipping because ci is shared or doesn't not exist9095 # ./spec/lib/gitlab/database/migration_helpers/automatic_lock_writes_on_tables_spec.rb:439096 9) 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 table9097 # Skipping because ci is shared or doesn't not exist9098 # ./spec/lib/gitlab/database/migration_helpers/automatic_lock_writes_on_tables_spec.rb:439099 10) 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 deleting9100 # Skipping because ci is shared or doesn't not exist9101 # ./spec/lib/gitlab/database/migration_helpers/automatic_lock_writes_on_tables_spec.rb:579102 11) 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 table9103 # Skipping because ci is shared or doesn't not exist9104 # ./spec/lib/gitlab/database/migration_helpers/automatic_lock_writes_on_tables_spec.rb:439105 12) 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 deleting9106 # Skipping because ci is shared or doesn't not exist9107 # ./spec/lib/gitlab/database/migration_helpers/automatic_lock_writes_on_tables_spec.rb:579108 13) 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 table9109 # Skipping because ci is shared or doesn't not exist9110 # ./spec/lib/gitlab/database/migration_helpers/automatic_lock_writes_on_tables_spec.rb:439111 14) 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 deleting9112 # Skipping because ci is shared or doesn't not exist9113 # ./spec/lib/gitlab/database/migration_helpers/automatic_lock_writes_on_tables_spec.rb:579114 15) 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 table9115 # Skipping because ci is shared or doesn't not exist9116 # ./spec/lib/gitlab/database/migration_helpers/automatic_lock_writes_on_tables_spec.rb:439117 16) 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 deleting9118 # Skipping because ci is shared or doesn't not exist9119 # ./spec/lib/gitlab/database/migration_helpers/automatic_lock_writes_on_tables_spec.rb:579120 17) 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 table9121 # Skipping because ci is shared or doesn't not exist9122 # ./spec/lib/gitlab/database/migration_helpers/automatic_lock_writes_on_tables_spec.rb:439123 18) 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 table9124 # Skipping because ci is shared or doesn't not exist9125 # ./spec/lib/gitlab/database/migration_helpers/automatic_lock_writes_on_tables_spec.rb:439126 19) 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 table9127 # Skipping because ci is shared or doesn't not exist9128 # ./spec/lib/gitlab/database/migration_helpers/automatic_lock_writes_on_tables_spec.rb:439129 20) 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 table9130 # Skipping because ci is shared or doesn't not exist9131 # ./spec/lib/gitlab/database/migration_helpers/automatic_lock_writes_on_tables_spec.rb:439132 21) 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 table9133 # Skipping because ci is shared or doesn't not exist9134 # ./spec/lib/gitlab/database/migration_helpers/automatic_lock_writes_on_tables_spec.rb:439135 22) 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 table9136 # Skipping because ci is shared or doesn't not exist9137 # ./spec/lib/gitlab/database/migration_helpers/automatic_lock_writes_on_tables_spec.rb:439138 23) 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 table9139 # Skipping because ci is shared or doesn't not exist9140 # ./spec/lib/gitlab/database/migration_helpers/automatic_lock_writes_on_tables_spec.rb:439141 24) 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_schema9142 # Skipping because ci is shared or doesn't not exist9143 # ./spec/lib/gitlab/database/migration_helpers/automatic_lock_writes_on_tables_spec.rb:2639144 25) 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 table9145 # Skipping because ci is shared or doesn't not exist9146 # ./spec/lib/gitlab/database/migration_helpers/automatic_lock_writes_on_tables_spec.rb:439147 26) Gitlab::Database::MigrationHelpers::AutomaticLockWritesOnTables when renaming a table when a gitlab_main table behaves like locks writes on table errors on deleting9148 # Skipping because ci is shared or doesn't not exist9149 # ./spec/lib/gitlab/database/migration_helpers/automatic_lock_writes_on_tables_spec.rb:579150 27) 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 table9151 # Skipping because ci is shared or doesn't not exist9152 # ./spec/lib/gitlab/database/migration_helpers/automatic_lock_writes_on_tables_spec.rb:439153 28) Gitlab::Database::MigrationHelpers::AutomaticLockWritesOnTables when renaming a table when a gitlab_ci table behaves like locks writes on table errors on deleting9154 # Skipping because ci is shared or doesn't not exist9155 # ./spec/lib/gitlab/database/migration_helpers/automatic_lock_writes_on_tables_spec.rb:579156 29) 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 table9157 # Skipping because ci is shared or doesn't not exist9158 # ./spec/lib/gitlab/database/migration_helpers/automatic_lock_writes_on_tables_spec.rb:439159 30) 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 deleting9160 # Skipping because ci is shared or doesn't not exist9161 # ./spec/lib/gitlab/database/migration_helpers/automatic_lock_writes_on_tables_spec.rb:579162 31) 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 table9163 # Skipping because ci is shared or doesn't not exist9164 # ./spec/lib/gitlab/database/migration_helpers/automatic_lock_writes_on_tables_spec.rb:439165 32) 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 deleting9166 # Skipping because ci is shared or doesn't not exist9167 # ./spec/lib/gitlab/database/migration_helpers/automatic_lock_writes_on_tables_spec.rb:579168 33) 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 table9169 # Skipping because ci is shared or doesn't not exist9170 # ./spec/lib/gitlab/database/migration_helpers/automatic_lock_writes_on_tables_spec.rb:439171 34) 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 table9172 # Skipping because ci is shared or doesn't not exist9173 # ./spec/lib/gitlab/database/migration_helpers/automatic_lock_writes_on_tables_spec.rb:439174 35) DesignManagement::SaveDesignsService#execute when the feature is available scalability runs the same queries for all requests, regardless of number of files9176 # ./spec/services/design_management/save_designs_service_spec.rb:4129177 36) Appearance with uploads behaves like model with uploads .destroy with not mounted uploads with local files deletes any FileUploader uploads which are not mounted9178 # No reason given9179 # ./spec/support/shared_examples/models/with_uploads_shared_examples.rb:239180 37) Appearance with uploads behaves like model with uploads .destroy with not mounted uploads with local files deletes local files9181 # No reason given9182 # ./spec/support/shared_examples/models/with_uploads_shared_examples.rb:279183 38) Appearance with uploads behaves like model with uploads .destroy with not mounted uploads with remote files deletes any FileUploader uploads which are not mounted9184 # No reason given9185 # ./spec/support/shared_examples/models/with_uploads_shared_examples.rb:379186 39) Appearance with uploads behaves like model with uploads .destroy with not mounted uploads with remote files deletes remote files9187 # No reason given9188 # ./spec/support/shared_examples/models/with_uploads_shared_examples.rb:419189 40) BackgroundMigration::CiDatabaseWorker behaves like it runs background migration jobs defining the job attributes defines the data_consistency as always9190 # Skipping because ci is shared or doesn't not exist9191 # ./spec/support/shared_examples/workers/background_migration_worker_shared_examples.rb:99192 41) BackgroundMigration::CiDatabaseWorker behaves like it runs background migration jobs defining the job attributes defines the retry count in sidekiq_options9193 # Skipping because ci is shared or doesn't not exist9194 # ./spec/support/shared_examples/workers/background_migration_worker_shared_examples.rb:139195 42) BackgroundMigration::CiDatabaseWorker behaves like it runs background migration jobs defining the job attributes defines the feature_category as database9196 # Skipping because ci is shared or doesn't not exist9197 # ./spec/support/shared_examples/workers/background_migration_worker_shared_examples.rb:179198 43) BackgroundMigration::CiDatabaseWorker behaves like it runs background migration jobs defining the job attributes defines the urgency as throttled9199 # Skipping because ci is shared or doesn't not exist9200 # ./spec/support/shared_examples/workers/background_migration_worker_shared_examples.rb:219201 44) BackgroundMigration::CiDatabaseWorker behaves like it runs background migration jobs defining the job attributes defines the loggable_arguments9202 # Skipping because ci is shared or doesn't not exist9203 # ./spec/support/shared_examples/workers/background_migration_worker_shared_examples.rb:259204 45) BackgroundMigration::CiDatabaseWorker behaves like it runs background migration jobs .tracking_database does not raise an error9205 # Skipping because ci is shared or doesn't not exist9206 # ./spec/support/shared_examples/workers/background_migration_worker_shared_examples.rb:319207 46) BackgroundMigration::CiDatabaseWorker behaves like it runs background migration jobs .tracking_database overrides the method to return the tracking database9208 # Skipping because ci is shared or doesn't not exist9209 # ./spec/support/shared_examples/workers/background_migration_worker_shared_examples.rb:359210 47) BackgroundMigration::CiDatabaseWorker behaves like it runs background migration jobs .minimum_interval returns 2 minutes9211 # Skipping because ci is shared or doesn't not exist9212 # ./spec/support/shared_examples/workers/background_migration_worker_shared_examples.rb:419213 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 message9214 # Skipping because ci is shared or doesn't not exist9215 # ./spec/support/shared_examples/workers/background_migration_worker_shared_examples.rb:549216 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 message9217 # Skipping because ci is shared or doesn't not exist9218 # ./spec/support/shared_examples/workers/background_migration_worker_shared_examples.rb:869219 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 worker9220 # Skipping because ci is shared or doesn't not exist9221 # ./spec/support/shared_examples/workers/background_migration_worker_shared_examples.rb:1239222 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 replication9223 # Skipping because ci is shared or doesn't not exist9224 # ./spec/support/shared_examples/workers/background_migration_worker_shared_examples.rb:1459225 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 migration9226 # Skipping because ci is shared or doesn't not exist9227 # ./spec/support/shared_examples/workers/background_migration_worker_shared_examples.rb:1549228 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 concurrently9229 # Skipping because ci is shared or doesn't not exist9230 # ./spec/support/shared_examples/workers/background_migration_worker_shared_examples.rb:1689231 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_id9232 # Skipping because ci is shared or doesn't not exist9233 # ./spec/support/shared_examples/workers/background_migration_worker_shared_examples.rb:1789234 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 migration9235 # Skipping because ci is shared or doesn't not exist9236 # ./spec/support/shared_examples/workers/background_migration_worker_shared_examples.rb:1619237 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_attempts9238 # Skipping because ci is shared or doesn't not exist9239 # ./spec/support/shared_examples/workers/background_migration_worker_shared_examples.rb:2049240 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_attempts9241 # Skipping because ci is shared or doesn't not exist9242 # ./spec/support/shared_examples/workers/background_migration_worker_shared_examples.rb:2159243 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 migration9244 # Skipping because ci is shared or doesn't not exist9245 # ./spec/support/shared_examples/workers/background_migration_worker_shared_examples.rb:2279246 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 healthy9247 # Skipping because ci is shared or doesn't not exist9248 # ./spec/support/shared_examples/workers/background_migration_worker_shared_examples.rb:2449249 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 counter9250 # Skipping because ci is shared or doesn't not exist9251 # ./spec/support/shared_examples/workers/background_migration_worker_shared_examples.rb:2529252 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 migration9253 # Skipping because ci is shared or doesn't not exist9254 # ./spec/support/shared_examples/workers/background_migration_worker_shared_examples.rb:2619255Failures:9256 1) Projects::ParticipantsService#execute includes `All Project and Group Members`9257 Failure/Error: expect(run_service).to include(a_hash_including({ username: "all", name: "All Project and Group Members" }))9258 expected [{:availability => nil, :avatar_url => "https://www.gravatar.com/avatar/13e9abd1f7bae251b93449efb6cddcd0?...d09301d7b9e0f3ef?s=80&d=identicon", :name => "Sidney Jones1011", :type => "User", :username => "user367"}] to include (a hash including {:username => "all", :name => "All Project and Group Members"})9259 Diff:9260 @@ -1,12 +1,23 @@9261 -[(a hash including {:username => "all", :name => "All Project and Group Members"})]9262 +[{:availability=>nil,9263 + :avatar_url=>9265 + :name=>"Sidney Jones1012",9266 + :type=>"User",9267 + :username=>"namespace646"},9268 + {:availability=>nil,9269 + :avatar_url=>9271 + :name=>"Sidney Jones1011",9272 + :type=>"User",9273 + :username=>"user367"}]9274 # ./spec/services/projects/participants_service_spec.rb:30:in `block (3 levels) in <top (required)>'9275 # ./spec/spec_helper.rb:440:in `block (3 levels) in <top (required)>'9276 # ./spec/support/sidekiq_middleware.rb:18:in `with_sidekiq_server_middleware'9277 # ./spec/spec_helper.rb:431:in `block (2 levels) in <top (required)>'9278 # ./spec/spec_helper.rb:427:in `block (3 levels) in <top (required)>'9279 # ./lib/gitlab/application_context.rb:66:in `with_raw_context'9280 # ./spec/spec_helper.rb:427:in `block (2 levels) in <top (required)>'9281 # ./spec/spec_helper.rb:267:in `block (2 levels) in <top (required)>'9282 # ./spec/support/system_exit_detected.rb:7:in `block (2 levels) in <top (required)>'9283 # ./spec/support/fast_quarantine.rb:22:in `block (2 levels) in <top (required)>'9284 # ./spec/support/database/prevent_cross_joins.rb:106:in `block (3 levels) in <top (required)>'9285 # ./spec/support/database/prevent_cross_joins.rb:60:in `with_cross_joins_prevented'9286 # ./spec/support/database/prevent_cross_joins.rb:106:in `block (2 levels) in <top (required)>'9287Finished in 34 minutes 7 seconds (files took 1 minute 3.82 seconds to load)92884404 examples, 1 failure, 61 pending9289Failed examples:9290rspec ./spec/services/projects/participants_service_spec.rb:29 # Projects::ParticipantsService#execute includes `All Project and Group Members`9291Randomized with seed 183809292[TEST PROF INFO] Time spent in factories: 15:37.891 (45.16% of total time)9293Stopped processing SimpleCov as a previous error not related to SimpleCov has been detected9294RSpec exited with 1.9295[job-metrics] Updating job metrics tag for the CI/CD job.9296RSPEC_RETRIED_TESTS_REPORT_PATH: rspec/retried_tests-5336651461.txt9297Retrying the failing examples in a new RSpec process...9298$ gem install junit_merge --no-document --version 0.1.29299Successfully installed nokogiri-1.15.4-x86_64-linux9300Successfully installed junit_merge-0.1.293012 gems installed9302==> 'gem install junit_merge --no-document --version 0.1.2' succeeded in 1 seconds.9303Running 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-5336651461.json --format RspecJunitFormatter --out rspec/rspec-retry-5336651461.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"9304 ██ ██ █████ ██████ ███ ██ ██ ███ ██ ██████ 9305 ██ ██ ██ ██ ██ ██ ████ ██ ██ ████ ██ ██ 9306 ██ █ ██ ███████ ██████ ██ ██ ██ ██ ██ ██ ██ ██ ███ 9307 ██ ███ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ 9308 ███ ███ ██ ██ ██ ██ ██ ████ ██ ██ ████ ██████ 9309******************************************************************************9310 Your database has a single connection, and single connections were9311 deprecated in GitLab 15.9 https://docs.gitlab.com/ee/update/deprecations.html#single-database-connection-is-deprecated.9312 Please add a :ci section to your database, following these instructions:9314******************************************************************************9315Run options: include {:last_run_status=>"failed"}9316Test environment set up in 0.459708628 seconds9317Projects::ParticipantsService9318 #execute9319 includes `All Project and Group Members`9320auto_explain log contains 1855 entries for main, writing to /builds/gitlab-org/gitlab/auto_explain/rspec-unit-pg14-as-if-foss-single-db-28-28.21451.main.ndjson.gz9321took 39.5455273879322Finished in 46.8 seconds (files took 45.23 seconds to load)93231 example, 0 failures9324[TEST PROF INFO] Time spent in factories: 00:02.326 (4.79% of total time)9325Loading rspec/rspec-5336651461.json...9326Merged rspec/rspec-retry-5336651461.json adding 4 results.9327Saved rspec/rspec-5336651461.json.9328A test was flaky and succeeded after being retried. Checking to see if flaky test is part of this MR...9329Flaky test was not part of this MR.9331Running after script...9332$ echo -e "\e[0Ksection_start:`date +%s`:report_results_section[collapsed=true]\r\e[0KReport results"9336$ tooling/bin/push_job_metrics || true9337[job-metrics] Pushing job metrics file for the CI/CD job.9338[job-metrics] Pushed 4 CI job metric entries to InfluxDB.9340Not uploading cache ruby-gems-debian-bullseye-ruby-3.0-16 due to policy9342Uploading artifacts...9343auto_explain/: found 3 matching artifact files and directories 9344coverage/: found 4 matching artifact files and directories 9345crystalball/: found 2 matching artifact files and directories 9346WARNING: deprecations/: no matching files. Ensure that the artifact path is relative to the working directory (/builds/gitlab-org/gitlab) 9347knapsack/: found 4 matching artifact files and directories 9348rspec/: found 17 matching artifact files and directories 9349WARNING: tmp/capybara/: no matching files. Ensure that the artifact path is relative to the working directory (/builds/gitlab-org/gitlab) 9350log/*.log: found 14 matching artifact files and directories 9351WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/5336651461/artifacts?artifact_format=zip&artifact_type=archive&expire_in=31d new-url=https://gitlab.com9352WARNING: Retrying... context=artifacts-uploader error=request redirected9353Uploading artifacts as "archive" to coordinator... 201 Created id=5336651461 responseStatus=201 Created token=64_VErzA9354Uploading artifacts...9355rspec/rspec-*.xml: found 2 matching artifact files and directories 9356WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/5336651461/artifacts?artifact_format=gzip&artifact_type=junit&expire_in=31d new-url=https://gitlab.com9357WARNING: Retrying... context=artifacts-uploader error=request redirected9358Uploading artifacts as "junit" to coordinator... 201 Created id=5336651461 responseStatus=201 Created token=64_VErzA9360Job succeeded