Files
capsule/pkg/api/meta/ownerreference_test.go
Oliver Bähler 581a8fe60e feat(controller): administration persona (#1739)
* chore(refactor): project and api refactoring

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

* chore(refactor): project and api refactoring

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

---------

Signed-off-by: Oliver Bähler <oliverbaehler@hotmail.com>
2025-11-18 16:27:16 +01:00

64 lines
1.5 KiB
Go

// Copyright 2020-2025 Project Capsule Authors
// SPDX-License-Identifier: Apache-2.0
package meta
import (
"testing"
corev1 "k8s.io/api/core/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/runtime"
"k8s.io/apimachinery/pkg/types"
"github.com/stretchr/testify/assert"
)
func TestLooseOwnerReferenceHelpers(t *testing.T) {
scheme := runtime.NewScheme()
_ = corev1.AddToScheme(scheme)
owner := &corev1.ConfigMap{
ObjectMeta: metav1.ObjectMeta{
Name: "owner",
Namespace: "default",
UID: types.UID("owner-uid"),
},
}
target := &corev1.ConfigMap{
ObjectMeta: metav1.ObjectMeta{
Name: "target",
Namespace: "default",
},
}
t.Run("SetLooseOwnerReference adds and clears controller fields", func(t *testing.T) {
err := SetLooseOwnerReference(target, owner, scheme)
assert.NoError(t, err)
refs := target.GetOwnerReferences()
assert.Len(t, refs, 1)
ref := refs[0]
assert.Equal(t, owner.UID, ref.UID)
assert.Nil(t, ref.BlockOwnerDeletion)
assert.Nil(t, ref.Controller)
})
t.Run("HasLooseOwnerReference returns true if present", func(t *testing.T) {
result := HasLooseOwnerReference(target, owner)
assert.True(t, result)
})
t.Run("RemoveLooseOwnerReference removes the reference", func(t *testing.T) {
RemoveLooseOwnerReference(target, owner)
refs := target.GetOwnerReferences()
assert.Len(t, refs, 0)
})
t.Run("HasLooseOwnerReference returns false if not present", func(t *testing.T) {
result := HasLooseOwnerReference(target, owner)
assert.False(t, result)
})
}