1
0
Fork 0
mirror of https://github.com/kyverno/kyverno.git synced 2025-03-30 03:15:05 +00:00
kyverno/api/kyverno/v1/user_info_test.go
Charles-Edouard Brétéché 5541189c6c
refactor: UserInfo validation (#3399)
Signed-off-by: Charles-Edouard Brétéché <charled.breteche@gmail.com>
2022-03-16 16:15:46 +00:00

48 lines
1 KiB
Go

package v1
import (
"testing"
"gotest.tools/assert"
rbacv1 "k8s.io/api/rbac/v1"
"k8s.io/apimachinery/pkg/util/validation/field"
)
func Test_Validate_ServiceAccount(t *testing.T) {
subject := UserInfo{
Subjects: []rbacv1.Subject{{
Kind: "ServiceAccount",
Name: "sa-1",
}, {
Kind: "ServiceAccount",
Name: "sa-2",
}},
}
path := field.NewPath("dummy")
errs := subject.Validate(path)
assert.Equal(t, len(errs), 2)
assert.Equal(t, errs[0].Field, "dummy.subjects[0].namespace")
assert.Equal(t, errs[1].Field, "dummy.subjects[1].namespace")
}
func Test_Validate_EmptyUserInfo(t *testing.T) {
subject := UserInfo{
Subjects: nil,
}
path := field.NewPath("dummy")
errs := subject.Validate(path)
assert.Equal(t, len(errs), 0)
}
func Test_Validate_Roles(t *testing.T) {
subject := UserInfo{
Roles: []string{
"namespace1:name1",
"name2",
},
}
path := field.NewPath("dummy")
errs := subject.Validate(path)
assert.Equal(t, len(errs), 1)
assert.Equal(t, errs[0].Field, "dummy.roles[1]")
}