Add declarative test cases for RC.Spec.Replicas

This commit is contained in:
Joe Betz 2025-03-12 19:06:25 -04:00
parent 0f4786536f
commit 20b69a54bf

View File

@ -40,10 +40,34 @@ func TestDeclarativeValidateForDeclarative(t *testing.T) {
input api.ReplicationController input api.ReplicationController
expectedErrs field.ErrorList expectedErrs field.ErrorList
}{ }{
// baseline
"empty resource": { "empty resource": {
input: mkValidReplicationController(), input: mkValidReplicationController(),
}, },
// TODO: Add test cases // spec.replicas
"nil replicas": {
input: mkValidReplicationController(func(rc *api.ReplicationController) {
rc.Spec.Replicas = nil
}),
expectedErrs: field.ErrorList{
field.Required(field.NewPath("spec.replicas"), ""),
},
},
"0 replicas": {
input: mkValidReplicationController(setSpecReplicas(0)),
},
"1 replicas": {
input: mkValidReplicationController(setSpecReplicas(1)),
},
"positive replicas": {
input: mkValidReplicationController(setSpecReplicas(100)),
},
"negative replicas": {
input: mkValidReplicationController(setSpecReplicas(-1)),
expectedErrs: field.ErrorList{
field.Invalid(field.NewPath("spec.replicas"), nil, "").WithOrigin("minimum"),
},
},
} }
for k, tc := range testCases { for k, tc := range testCases {
t.Run(k, func(t *testing.T) { t.Run(k, func(t *testing.T) {
@ -90,7 +114,40 @@ func TestValidateUpdateForDeclarative(t *testing.T) {
update api.ReplicationController update api.ReplicationController
expectedErrs field.ErrorList expectedErrs field.ErrorList
}{ }{
// TODO: Add test cases // baseline
"baseline": {
old: mkValidReplicationController(),
update: mkValidReplicationController(),
},
// spec.replicas
"nil replicas": {
old: mkValidReplicationController(),
update: mkValidReplicationController(func(rc *api.ReplicationController) {
rc.Spec.Replicas = nil
}),
expectedErrs: field.ErrorList{
field.Required(field.NewPath("spec.replicas"), ""),
},
},
"0 replicas": {
old: mkValidReplicationController(),
update: mkValidReplicationController(setSpecReplicas(0)),
},
"1 replicas": {
old: mkValidReplicationController(),
update: mkValidReplicationController(setSpecReplicas(1)),
},
"positive replicas": {
old: mkValidReplicationController(),
update: mkValidReplicationController(setSpecReplicas(100)),
},
"negative replicas": {
old: mkValidReplicationController(),
update: mkValidReplicationController(setSpecReplicas(-1)),
expectedErrs: field.ErrorList{
field.Invalid(field.NewPath("spec.replicas"), nil, "").WithOrigin("minimum"),
},
},
} }
for k, tc := range testCases { for k, tc := range testCases {
t.Run(k, func(t *testing.T) { t.Run(k, func(t *testing.T) {
@ -164,3 +221,9 @@ func mkValidReplicationController(tweaks ...func(rc *api.ReplicationController))
} }
return rc return rc
} }
func setSpecReplicas(val int32) func(rc *api.ReplicationController) {
return func(rc *api.ReplicationController) {
rc.Spec.Replicas = ptr.To(val)
}
}