Files
capsule/pkg/api/owner_list_test.go
Oliver Bähler a6b830b1af feat: add ruleset api(#1844)
* fix(controller): decode old object for delete requests

Signed-off-by: Oliver Bähler <oliverbaehler@hotmail.com>

* chore: modernize golang

Signed-off-by: Oliver Bähler <oliverbaehler@hotmail.com>

* chore: modernize golang

Signed-off-by: Oliver Bähler <oliverbaehler@hotmail.com>

* chore: modernize golang

Signed-off-by: Oliver Bähler <oliverbaehler@hotmail.com>

* fix(config): remove usergroups default

Signed-off-by: Oliver Bähler <oliverbaehler@hotmail.com>

* fix(config): remove usergroups default

Signed-off-by: Oliver Bähler <oliverbaehler@hotmail.com>

* sec(ghsa-2ww6-hf35-mfjm): intercept namespace subresource

Signed-off-by: Oliver Bähler <oliverbaehler@hotmail.com>

* feat(api): add rulestatus api

Signed-off-by: Oliver Bähler <oliverbaehler@hotmail.com>

* chore: conflicts

Signed-off-by: Oliver Bähler <oliverbaehler@hotmail.com>

* chore: conflicts

Signed-off-by: Oliver Bähler <oliverbaehler@hotmail.com>

* chore: conflicts

Signed-off-by: Oliver Bähler <oliverbaehler@hotmail.com>

* chore: conflicts

Signed-off-by: Oliver Bähler <oliverbaehler@hotmail.com>

* chore: conflicts

Signed-off-by: Oliver Bähler <oliverbaehler@hotmail.com>

* chore: conflicts

Signed-off-by: Oliver Bähler <oliverbaehler@hotmail.com>

* chore: conflicts

Signed-off-by: Oliver Bähler <oliverbaehler@hotmail.com>

* chore: conflicts

Signed-off-by: Oliver Bähler <oliverbaehler@hotmail.com>

* chore: conflicts

Signed-off-by: Oliver Bähler <oliverbaehler@hotmail.com>

* chore: conflicts

Signed-off-by: Oliver Bähler <oliverbaehler@hotmail.com>

* chore: conflicts

Signed-off-by: Oliver Bähler <oliverbaehler@hotmail.com>

* feat(api): add rulestatus api

Signed-off-by: Oliver Bähler <oliverbaehler@hotmail.com>

* feat(api): add rulestatus api

Signed-off-by: Oliver Bähler <oliverbaehler@hotmail.com>

* feat(api): add rulestatus api

Signed-off-by: Oliver Bähler <oliverbaehler@hotmail.com>

* feat(api): add rulestatus api

Signed-off-by: Oliver Bähler <oliverbaehler@hotmail.com>

* feat(api): add rulestatus api

Signed-off-by: Oliver Bähler <oliverbaehler@hotmail.com>

* feat(api): add rulestatus api

Signed-off-by: Oliver Bähler <oliverbaehler@hotmail.com>

---------

Signed-off-by: Oliver Bähler <oliverbaehler@hotmail.com>
2026-01-27 14:28:48 +01:00

113 lines
2.6 KiB
Go

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