Files
capsule/pkg/tenant/template_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

91 lines
2.1 KiB
Go

// Copyright 2020-2026 Project Capsule Authors
// SPDX-License-Identifier: Apache-2.0
package tenant_test
import (
"testing"
corev1 "k8s.io/api/core/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
capsulev1beta2 "github.com/projectcapsule/capsule/api/v1beta2"
"github.com/projectcapsule/capsule/pkg/tenant"
)
func TestContextForTenantAndNamespace_BothNil(t *testing.T) {
ctx := tenant.ContextForTenantAndNamespace(nil, nil)
if ctx == nil {
t.Fatalf("expected non-nil map")
}
if len(ctx) != 0 {
t.Fatalf("expected empty map, got %v", ctx)
}
}
func TestContextForTenantAndNamespace_OnlyTenant(t *testing.T) {
tnt := &capsulev1beta2.Tenant{
ObjectMeta: metav1.ObjectMeta{
Name: "wind",
},
}
ctx := tenant.ContextForTenantAndNamespace(tnt, nil)
if got := ctx["tenant.name"]; got != "wind" {
t.Fatalf("expected tenant.name=wind, got %q", got)
}
if _, ok := ctx["namespace"]; ok {
t.Fatalf("did not expect namespace key to be set")
}
if len(ctx) != 1 {
t.Fatalf("expected map size 1, got %d (%v)", len(ctx), ctx)
}
}
func TestContextForTenantAndNamespace_OnlyNamespace(t *testing.T) {
ns := &corev1.Namespace{
ObjectMeta: metav1.ObjectMeta{
Name: "wind-prod",
},
}
ctx := tenant.ContextForTenantAndNamespace(nil, ns)
if got := ctx["namespace"]; got != "wind-prod" {
t.Fatalf("expected namespace=wind-prod, got %q", got)
}
if _, ok := ctx["tenant.name"]; ok {
t.Fatalf("did not expect tenant.name key to be set")
}
if len(ctx) != 1 {
t.Fatalf("expected map size 1, got %d (%v)", len(ctx), ctx)
}
}
func TestContextForTenantAndNamespace_BothSet(t *testing.T) {
tnt := &capsulev1beta2.Tenant{
ObjectMeta: metav1.ObjectMeta{
Name: "wind",
},
}
ns := &corev1.Namespace{
ObjectMeta: metav1.ObjectMeta{
Name: "wind-prod",
},
}
ctx := tenant.ContextForTenantAndNamespace(tnt, ns)
if got := ctx["tenant.name"]; got != "wind" {
t.Fatalf("expected tenant.name=wind, got %q", got)
}
if got := ctx["namespace"]; got != "wind-prod" {
t.Fatalf("expected namespace=wind-prod, got %q", got)
}
if len(ctx) != 2 {
t.Fatalf("expected map size 2, got %d (%v)", len(ctx), ctx)
}
}