Merge pull request #1623 from AllenZMC/improve_test
improve test coverage for validation
This commit is contained in:
commit
5b3ef7d93f
|
@ -3,7 +3,10 @@ package validation
|
|||
import (
|
||||
"testing"
|
||||
|
||||
corev1 "k8s.io/api/core/v1"
|
||||
|
||||
policyv1alpha1 "github.com/karmada-io/karmada/pkg/apis/policy/v1alpha1"
|
||||
"github.com/karmada-io/karmada/pkg/util"
|
||||
)
|
||||
|
||||
func TestValidateOverrideSpec(t *testing.T) {
|
||||
|
@ -113,3 +116,105 @@ func TestValidateOverrideSpec(t *testing.T) {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
func TestValidatePolicyFieldSelector(t *testing.T) {
|
||||
fakeProvider := []string{"fooCloud"}
|
||||
fakeRegion := []string{"fooRegion"}
|
||||
fakeZone := []string{"fooZone"}
|
||||
|
||||
tests := []struct {
|
||||
name string
|
||||
filedSelector *policyv1alpha1.FieldSelector
|
||||
expectError bool
|
||||
}{
|
||||
{
|
||||
name: "supported key",
|
||||
filedSelector: &policyv1alpha1.FieldSelector{
|
||||
MatchExpressions: []corev1.NodeSelectorRequirement{
|
||||
{
|
||||
Key: util.ProviderField,
|
||||
Operator: corev1.NodeSelectorOpIn,
|
||||
Values: fakeProvider,
|
||||
},
|
||||
{
|
||||
Key: util.RegionField,
|
||||
Operator: corev1.NodeSelectorOpNotIn,
|
||||
Values: fakeRegion,
|
||||
},
|
||||
{
|
||||
Key: util.ZoneField,
|
||||
Operator: corev1.NodeSelectorOpNotIn,
|
||||
Values: fakeZone,
|
||||
},
|
||||
},
|
||||
},
|
||||
expectError: false,
|
||||
},
|
||||
{
|
||||
name: "unsupported key",
|
||||
filedSelector: &policyv1alpha1.FieldSelector{
|
||||
MatchExpressions: []corev1.NodeSelectorRequirement{
|
||||
{
|
||||
Key: "foo",
|
||||
Operator: corev1.NodeSelectorOpIn,
|
||||
Values: fakeProvider,
|
||||
},
|
||||
{
|
||||
Key: util.RegionField,
|
||||
Operator: corev1.NodeSelectorOpNotIn,
|
||||
Values: fakeRegion,
|
||||
},
|
||||
},
|
||||
},
|
||||
expectError: true,
|
||||
},
|
||||
{
|
||||
name: "supported operator",
|
||||
filedSelector: &policyv1alpha1.FieldSelector{
|
||||
MatchExpressions: []corev1.NodeSelectorRequirement{
|
||||
{
|
||||
Key: util.ProviderField,
|
||||
Operator: corev1.NodeSelectorOpIn,
|
||||
Values: fakeProvider,
|
||||
},
|
||||
{
|
||||
Key: util.RegionField,
|
||||
Operator: corev1.NodeSelectorOpNotIn,
|
||||
Values: fakeRegion,
|
||||
},
|
||||
},
|
||||
},
|
||||
expectError: false,
|
||||
},
|
||||
{
|
||||
name: "unsupported operator",
|
||||
filedSelector: &policyv1alpha1.FieldSelector{
|
||||
MatchExpressions: []corev1.NodeSelectorRequirement{
|
||||
{
|
||||
Key: util.ProviderField,
|
||||
Operator: corev1.NodeSelectorOpExists,
|
||||
Values: fakeProvider,
|
||||
},
|
||||
{
|
||||
Key: util.RegionField,
|
||||
Operator: corev1.NodeSelectorOpNotIn,
|
||||
Values: fakeRegion,
|
||||
},
|
||||
},
|
||||
},
|
||||
expectError: true,
|
||||
},
|
||||
}
|
||||
|
||||
for _, tt := range tests {
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
err := ValidatePolicyFieldSelector(tt.filedSelector)
|
||||
if err != nil && tt.expectError != true {
|
||||
t.Fatalf("expect no error but got: %v", err)
|
||||
}
|
||||
if err == nil && tt.expectError == true {
|
||||
t.Fatalf("expect an error but got none")
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue