mirror of
https://github.com/YuzuZensai/netbird-kubernetes-operator.git
synced 2026-09-13 18:59:09 +00:00
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:
@@ -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,13 +3,13 @@
|
|||||||
package k8sutil
|
package k8sutil
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"k8s.io/apimachinery/pkg/runtime"
|
kruntime "k8s.io/apimachinery/pkg/runtime"
|
||||||
metav1ac "k8s.io/client-go/applyconfigurations/meta/v1"
|
metav1ac "k8s.io/client-go/applyconfigurations/meta/v1"
|
||||||
"sigs.k8s.io/controller-runtime/pkg/client"
|
"sigs.k8s.io/controller-runtime/pkg/client"
|
||||||
"sigs.k8s.io/controller-runtime/pkg/client/apiutil"
|
"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)
|
gvk, err := apiutil.GVKForObject(owner, scheme)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
@@ -23,7 +23,7 @@ func ControllerReference(owner client.Object, scheme *runtime.Scheme) (*metav1ac
|
|||||||
WithBlockOwnerDeletion(true), nil
|
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)
|
gvk, err := apiutil.GVKForObject(owner, scheme)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
|
|||||||
@@ -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)
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user