Skip to content

Commit

Permalink
Fix bug with service-resolver validation (#330)
Browse files Browse the repository at this point in the history
Would always return invalid
  • Loading branch information
lkysow authored Sep 23, 2020
1 parent b333e0b commit 1e9a70b
Show file tree
Hide file tree
Showing 3 changed files with 42 additions and 5 deletions.
19 changes: 18 additions & 1 deletion api/v1alpha1/servicedefaults_types_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -661,6 +661,19 @@ func TestServiceDefaults_Validate(t *testing.T) {
input *ServiceDefaults
expectedErrMsg string
}{
"valid": {
input: &ServiceDefaults{
ObjectMeta: metav1.ObjectMeta{
Name: "my-service",
},
Spec: ServiceDefaultsSpec{
MeshGateway: MeshGatewayConfig{
Mode: "remote",
},
},
},
expectedErrMsg: "",
},
"meshgateway.mode": {
&ServiceDefaults{
ObjectMeta: metav1.ObjectMeta{
Expand Down Expand Up @@ -736,7 +749,11 @@ func TestServiceDefaults_Validate(t *testing.T) {
for name, testCase := range cases {
t.Run(name, func(t *testing.T) {
err := testCase.input.Validate()
require.EqualError(t, err, testCase.expectedErrMsg)
if testCase.expectedErrMsg != "" {
require.EqualError(t, err, testCase.expectedErrMsg)
} else {
require.NoError(t, err)
}
})
}
}
Expand Down
9 changes: 6 additions & 3 deletions api/v1alpha1/serviceresolver_types.go
Original file line number Diff line number Diff line change
Expand Up @@ -127,9 +127,12 @@ func (in *ServiceResolver) Validate() error {
}
}

return apierrors.NewInvalid(
schema.GroupKind{Group: ConsulHashicorpGroup, Kind: ServiceResolverKubeKind},
in.Name(), errs)
if len(errs) > 0 {
return apierrors.NewInvalid(
schema.GroupKind{Group: ConsulHashicorpGroup, Kind: ServiceResolverKubeKind},
in.Name(), errs)
}
return nil
}

func (in *ServiceResolverFailover) validate(key string) *field.Error {
Expand Down
19 changes: 18 additions & 1 deletion api/v1alpha1/serviceresolver_types_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -514,6 +514,19 @@ func TestServiceResolver_Validate(t *testing.T) {
input *ServiceResolver
expectedErrMsg string
}{
"valid": {
input: &ServiceResolver{
ObjectMeta: metav1.ObjectMeta{
Name: "foo",
},
Spec: ServiceResolverSpec{
Redirect: &ServiceResolverRedirect{
Service: "bar",
},
},
},
expectedErrMsg: "",
},
"failover service, servicesubset, namespace, datacenters empty": {
input: &ServiceResolver{
ObjectMeta: metav1.ObjectMeta{
Expand Down Expand Up @@ -542,7 +555,11 @@ func TestServiceResolver_Validate(t *testing.T) {
for name, testCase := range cases {
t.Run(name, func(t *testing.T) {
err := testCase.input.Validate()
require.EqualError(t, err, testCase.expectedErrMsg)
if testCase.expectedErrMsg != "" {
require.EqualError(t, err, testCase.expectedErrMsg)
} else {
require.NoError(t, err)
}
})
}
}

0 comments on commit 1e9a70b

Please sign in to comment.