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 (
|
import (
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
|
corev1 "k8s.io/api/core/v1"
|
||||||
|
|
||||||
policyv1alpha1 "github.com/karmada-io/karmada/pkg/apis/policy/v1alpha1"
|
policyv1alpha1 "github.com/karmada-io/karmada/pkg/apis/policy/v1alpha1"
|
||||||
|
"github.com/karmada-io/karmada/pkg/util"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestValidateOverrideSpec(t *testing.T) {
|
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