Files
capsule/pkg/api/rbac/owner_list_test.go
cc4fb45d70 feat: upstream enterprise preview (#1841)
feat: upstream enterprise preview

---------

Signed-off-by: Oliver Baehler <oliver@sudo-i.net>
Co-authored-by: CorentinPtrl <pitrel.corentin@gmail.com>
2026-05-28 00:58:58 +02:00

113 lines
2.6 KiB
Go

// Copyright 2020-2026 Project Capsule Authors
// SPDX-License-Identifier: Apache-2.0
package rbac_test
import (
"testing"
"github.com/stretchr/testify/assert"
"github.com/projectcapsule/capsule/pkg/api/rbac"
)
func TestOwnerListSpec_FindOwner(t *testing.T) {
bla := rbac.OwnerSpec{
CoreOwnerSpec: rbac.CoreOwnerSpec{
UserSpec: rbac.UserSpec{
Kind: rbac.UserOwner,
Name: "bla",
},
},
ProxyOperations: []rbac.ProxySettings{
{
Kind: rbac.IngressClassesProxy,
Operations: []rbac.ProxyOperation{"Delete"},
},
},
}
bar := rbac.OwnerSpec{
CoreOwnerSpec: rbac.CoreOwnerSpec{
UserSpec: rbac.UserSpec{
Kind: rbac.GroupOwner,
Name: "bar",
},
},
ProxyOperations: []rbac.ProxySettings{
{
Kind: rbac.StorageClassesProxy,
Operations: []rbac.ProxyOperation{"Delete"},
},
},
}
baz := rbac.OwnerSpec{
CoreOwnerSpec: rbac.CoreOwnerSpec{
UserSpec: rbac.UserSpec{
Kind: rbac.UserOwner,
Name: "baz",
},
},
ProxyOperations: []rbac.ProxySettings{
{
Kind: rbac.StorageClassesProxy,
Operations: []rbac.ProxyOperation{"Update"},
},
},
}
fim := rbac.OwnerSpec{
CoreOwnerSpec: rbac.CoreOwnerSpec{
UserSpec: rbac.UserSpec{
Kind: rbac.ServiceAccountOwner,
Name: "fim",
},
},
ProxyOperations: []rbac.ProxySettings{
{
Kind: rbac.NodesProxy,
Operations: []rbac.ProxyOperation{"List"},
},
},
}
bom := rbac.OwnerSpec{
CoreOwnerSpec: rbac.CoreOwnerSpec{
UserSpec: rbac.UserSpec{
Kind: rbac.GroupOwner,
Name: "bom",
},
},
ProxyOperations: []rbac.ProxySettings{
{
Kind: rbac.StorageClassesProxy,
Operations: []rbac.ProxyOperation{"Delete"},
},
{
Kind: rbac.NodesProxy,
Operations: []rbac.ProxyOperation{"Delete"},
},
},
}
qip := rbac.OwnerSpec{
CoreOwnerSpec: rbac.CoreOwnerSpec{
UserSpec: rbac.UserSpec{
Kind: rbac.ServiceAccountOwner,
Name: "qip",
},
},
ProxyOperations: []rbac.ProxySettings{
{
Kind: rbac.StorageClassesProxy,
Operations: []rbac.ProxyOperation{"List", "Delete"},
},
},
}
owners := rbac.OwnerListSpec{bom, qip, bla, bar, baz, fim}
assert.Equal(t, owners.FindOwner("bom", rbac.GroupOwner), bom)
assert.Equal(t, owners.FindOwner("qip", rbac.ServiceAccountOwner), qip)
assert.Equal(t, owners.FindOwner("bla", rbac.UserOwner), bla)
assert.Equal(t, owners.FindOwner("bar", rbac.GroupOwner), bar)
assert.Equal(t, owners.FindOwner("baz", rbac.UserOwner), baz)
assert.Equal(t, owners.FindOwner("fim", rbac.ServiceAccountOwner), fim)
assert.Equal(t, owners.FindOwner("notfound", rbac.ServiceAccountOwner), rbac.OwnerSpec{})
}