1
0
Fork 0
mirror of https://github.com/kyverno/kyverno.git synced 2025-03-29 19:05:27 +00:00
kyverno/api/policies.kyverno.io/v1alpha1/policy_exception_test.go

102 lines
2.1 KiB
Go
Raw Normal View History

package v1alpha1
import (
"testing"
"github.com/stretchr/testify/assert"
v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/util/validation/field"
)
func TestCELPolicyException_GetKind(t *testing.T) {
tests := []struct {
name string
policy *CELPolicyException
want string
}{{
name: "not set",
policy: &CELPolicyException{},
want: "CELPolicyException",
}, {
name: "not set",
policy: &CELPolicyException{
TypeMeta: v1.TypeMeta{
Kind: "Foo",
},
},
want: "CELPolicyException",
}}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
got := tt.policy.GetKind()
assert.Equal(t, tt.want, got)
})
}
}
func TestCELPolicyExceptionSpec_Validate(t *testing.T) {
tests := []struct {
name string
policy *CELPolicyException
wantErrs field.ErrorList
}{{
name: "no refs",
policy: &CELPolicyException{},
wantErrs: field.ErrorList{{
Type: field.ErrorTypeInvalid,
Field: "spec.policyRefs",
BadValue: []PolicyRef(nil),
Detail: "must specify at least one policy ref",
}},
}, {
name: "one ref",
policy: &CELPolicyException{
Spec: CELPolicyExceptionSpec{
PolicyRefs: []PolicyRef{{
Name: "foo",
Kind: "Foo",
}},
},
},
wantErrs: nil,
}, {
name: "ref no kind",
policy: &CELPolicyException{
Spec: CELPolicyExceptionSpec{
PolicyRefs: []PolicyRef{{
Name: "foo",
}},
},
},
wantErrs: field.ErrorList{{
Type: field.ErrorTypeInvalid,
Field: "spec.policyRefs[0].kind",
BadValue: "",
Detail: "must specify policy kind",
}},
}, {
name: "ref no name",
policy: &CELPolicyException{
Spec: CELPolicyExceptionSpec{
PolicyRefs: []PolicyRef{{
Kind: "Foo",
}},
},
},
wantErrs: field.ErrorList{{
Type: field.ErrorTypeInvalid,
Field: "spec.policyRefs[0].name",
BadValue: "",
Detail: "must specify policy name",
}},
},
// TODO: Add test cases.
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
gotErrs := tt.policy.Validate()
assert.Equal(t, tt.wantErrs, gotErrs)
})
}
}