mirror of
https://github.com/projectcapsule/capsule.git
synced 2026-08-19 12:36:39 +00:00
* 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: preserve ca-bundles injected from external providers Signed-off-by: Oliver Baehler <oliver@sudo-i.net> * feat: add metadata enforcement Signed-off-by: Oliver Baehler <oliver@sudo-i.net> * feat: add metadata enforcement Signed-off-by: Oliver Baehler <oliver@sudo-i.net> * fix: add resourcepoolclaim validation Signed-off-by: Oliver Baehler <oliver@sudo-i.net> * fix: add resourcepoolclaim validation Signed-off-by: Oliver Baehler <oliver@sudo-i.net> * fix: add resourcepoolclaim validation Signed-off-by: Oliver Baehler <oliver@sudo-i.net> * Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> * fix: add resourcepoolclaim validation Signed-off-by: Oliver Baehler <oliver@sudo-i.net> * fix: wave of fixes Signed-off-by: Oliver Baehler <oliver@sudo-i.net> * fix: wave of fixes Signed-off-by: Oliver Baehler <oliver@sudo-i.net> * fix: wave of fixes Signed-off-by: Oliver Baehler <oliver@sudo-i.net> * fix: wave of fixes Signed-off-by: Oliver Baehler <oliver@sudo-i.net> * fix: wave of fixes Signed-off-by: Oliver Baehler <oliver@sudo-i.net> * fix: wave of fixes Signed-off-by: Oliver Baehler <oliver@sudo-i.net> --------- Signed-off-by: Oliver Bähler <oliverbaehler@hotmail.com> Signed-off-by: Oliver Baehler <oliver@sudo-i.net> Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
68 lines
1.6 KiB
Go
68 lines
1.6 KiB
Go
// Copyright 2020-2026 Project Capsule Authors
|
|
// SPDX-License-Identifier: Apache-2.0
|
|
|
|
package resourcepools
|
|
|
|
import (
|
|
"context"
|
|
"testing"
|
|
|
|
"sigs.k8s.io/controller-runtime/pkg/controller/controllerutil"
|
|
|
|
capsulev1beta2 "github.com/projectcapsule/capsule/api/v1beta2"
|
|
"github.com/projectcapsule/capsule/pkg/api/meta"
|
|
)
|
|
|
|
func TestResourcePoolFinalize(t *testing.T) {
|
|
t.Parallel()
|
|
|
|
tests := []struct {
|
|
name string
|
|
claimSize uint
|
|
namespaceSize uint
|
|
initialFinalizer bool
|
|
wantFinalizer bool
|
|
}{
|
|
{
|
|
name: "adds finalizer when namespaces are managed without claims",
|
|
namespaceSize: 2,
|
|
initialFinalizer: false,
|
|
wantFinalizer: true,
|
|
},
|
|
{
|
|
name: "adds finalizer when claims are managed",
|
|
claimSize: 1,
|
|
initialFinalizer: false,
|
|
wantFinalizer: true,
|
|
},
|
|
{
|
|
name: "removes finalizer when no managed resources remain",
|
|
initialFinalizer: true,
|
|
wantFinalizer: false,
|
|
},
|
|
}
|
|
|
|
for _, tt := range tests {
|
|
t.Run(tt.name, func(t *testing.T) {
|
|
t.Parallel()
|
|
|
|
pool := &capsulev1beta2.ResourcePool{
|
|
Status: capsulev1beta2.ResourcePoolStatus{
|
|
ClaimSize: tt.claimSize,
|
|
NamespaceSize: tt.namespaceSize,
|
|
},
|
|
}
|
|
|
|
if tt.initialFinalizer {
|
|
controllerutil.AddFinalizer(pool, meta.ControllerFinalizer)
|
|
}
|
|
|
|
(&resourcePoolController{}).finalize(context.Background(), pool)
|
|
|
|
if got := controllerutil.ContainsFinalizer(pool, meta.ControllerFinalizer); got != tt.wantFinalizer {
|
|
t.Fatalf("finalizer presence = %v, want %v", got, tt.wantFinalizer)
|
|
}
|
|
})
|
|
}
|
|
}
|