Add tests to k8sutil (#296)

Adds more unit tests to sections that are easy to test.

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

* **Tests**
* Added unit tests for Kubernetes owner-reference and finalizer helper
functions to ensure correct behavior.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
This commit is contained in:
Philip Laine
2026-06-15 13:57:14 +02:00
committed by GitHub
parent 2dbfde779a
commit 5e5e37a153
3 changed files with 75 additions and 3 deletions
+16
View File
@@ -0,0 +1,16 @@
// SPDX-License-Identifier: BSD-3-Clause
package k8sutil
import (
"testing"
"github.com/go-openapi/testify/v2/require"
)
func TestFinalizer(t *testing.T) {
t.Parallel()
res := Finalizer("foo")
require.Equal(t, "finalizers.netbird.io/foo", res)
}
+3 -3
View File
@@ -3,13 +3,13 @@
package k8sutil
import (
"k8s.io/apimachinery/pkg/runtime"
kruntime "k8s.io/apimachinery/pkg/runtime"
metav1ac "k8s.io/client-go/applyconfigurations/meta/v1"
"sigs.k8s.io/controller-runtime/pkg/client"
"sigs.k8s.io/controller-runtime/pkg/client/apiutil"
)
func ControllerReference(owner client.Object, scheme *runtime.Scheme) (*metav1ac.OwnerReferenceApplyConfiguration, error) {
func ControllerReference(owner client.Object, scheme *kruntime.Scheme) (*metav1ac.OwnerReferenceApplyConfiguration, error) {
gvk, err := apiutil.GVKForObject(owner, scheme)
if err != nil {
return nil, err
@@ -23,7 +23,7 @@ func ControllerReference(owner client.Object, scheme *runtime.Scheme) (*metav1ac
WithBlockOwnerDeletion(true), nil
}
func OwnerReference(owner client.Object, scheme *runtime.Scheme) (*metav1ac.OwnerReferenceApplyConfiguration, error) {
func OwnerReference(owner client.Object, scheme *kruntime.Scheme) (*metav1ac.OwnerReferenceApplyConfiguration, error) {
gvk, err := apiutil.GVKForObject(owner, scheme)
if err != nil {
return nil, err
+56
View File
@@ -0,0 +1,56 @@
// SPDX-License-Identifier: BSD-3-Clause
package k8sutil
import (
"testing"
"github.com/go-openapi/testify/v2/require"
corev1 "k8s.io/api/core/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
kruntime "k8s.io/apimachinery/pkg/runtime"
)
func TestControllerReference(t *testing.T) {
t.Parallel()
scheme := kruntime.NewScheme()
err := corev1.AddToScheme(scheme)
require.NoError(t, err)
pod := corev1.Pod{
ObjectMeta: metav1.ObjectMeta{
Name: "foo",
},
}
ownerRef, err := ControllerReference(&pod, scheme)
require.NoError(t, err)
require.EqualT(t, "v1", *ownerRef.APIVersion)
require.EqualT(t, "Pod", *ownerRef.Kind)
require.EqualT(t, "foo", *ownerRef.Name)
require.EqualT(t, pod.UID, *ownerRef.UID)
require.EqualT(t, true, *ownerRef.Controller)
require.EqualT(t, true, *ownerRef.BlockOwnerDeletion)
}
func TestOwnerReference(t *testing.T) {
t.Parallel()
scheme := kruntime.NewScheme()
err := corev1.AddToScheme(scheme)
require.NoError(t, err)
pod := corev1.Pod{
ObjectMeta: metav1.ObjectMeta{
Name: "foo",
},
}
ownerRef, err := OwnerReference(&pod, scheme)
require.NoError(t, err)
require.EqualT(t, "v1", *ownerRef.APIVersion)
require.EqualT(t, "Pod", *ownerRef.Kind)
require.EqualT(t, "foo", *ownerRef.Name)
require.EqualT(t, pod.UID, *ownerRef.UID)
require.EqualT(t, false, *ownerRef.Controller)
require.EqualT(t, false, *ownerRef.BlockOwnerDeletion)
}