mirror of
https://github.com/k3s-io/kubernetes.git
synced 2026-07-18 04:54:54 +00:00
test(validation): Add tests for status.ReservedFor maxItems validation
This commit is contained in:
@@ -632,6 +632,21 @@ func TestValidateStatusUpdateForDeclarative(t *testing.T) {
|
||||
field.Duplicate(field.NewPath("status", "reservedFor").Index(4), ""),
|
||||
},
|
||||
},
|
||||
"invalid status.ReservedFor, too many": {
|
||||
old: mkValidResourceClaim(),
|
||||
update: mkResourceClaimWithStatus(
|
||||
tweakStatusReservedFor(generateResourceClaimReferences(257)...),
|
||||
),
|
||||
expectedErrs: field.ErrorList{
|
||||
field.TooMany(field.NewPath("status", "reservedFor"), 257, 256).WithOrigin("maxItems"),
|
||||
},
|
||||
},
|
||||
"valid status.ReservedFor, max items": {
|
||||
old: mkValidResourceClaim(),
|
||||
update: mkResourceClaimWithStatus(
|
||||
tweakStatusReservedFor(generateResourceClaimReferences(256)...),
|
||||
),
|
||||
},
|
||||
}
|
||||
for k, tc := range testCases {
|
||||
t.Run(k, func(t *testing.T) {
|
||||
@@ -777,6 +792,18 @@ func resourceClaimReference(uid string) resource.ResourceClaimConsumerReference
|
||||
}
|
||||
}
|
||||
|
||||
func generateResourceClaimReferences(count int) []resource.ResourceClaimConsumerReference {
|
||||
refs := make([]resource.ResourceClaimConsumerReference, count)
|
||||
for i := 0; i < count; i++ {
|
||||
refs[i] = resource.ResourceClaimConsumerReference{
|
||||
Resource: "pods",
|
||||
Name: fmt.Sprintf("pod-%d", i),
|
||||
UID: types.UID(uuid.New().String()),
|
||||
}
|
||||
}
|
||||
return refs
|
||||
}
|
||||
|
||||
func tweakStatusReservedFor(refs ...resource.ResourceClaimConsumerReference) func(rc *resource.ResourceClaim) {
|
||||
return func(rc *resource.ResourceClaim) {
|
||||
rc.Status.ReservedFor = refs
|
||||
|
||||
Reference in New Issue
Block a user