package controller import ( "context" . "github.com/onsi/ginkgo/v2" . "github.com/onsi/gomega" "k8s.io/apimachinery/pkg/api/errors" "k8s.io/apimachinery/pkg/types" "sigs.k8s.io/controller-runtime/pkg/reconcile" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" netbirdiov1 "github.com/netbirdio/kubernetes-operator/api/v1" ) var _ = Describe("NBPolicy Controller", func() { Context("When reconciling a resource", func() { const resourceName = "test-resource" ctx := context.Background() typeNamespacedName := types.NamespacedName{ Name: resourceName, Namespace: "default", // TODO(user):Modify as needed } nbpolicy := &netbirdiov1.NBPolicy{} BeforeEach(func() { Skip("Not implemented yet") By("creating the custom resource for the Kind NBPolicy") err := k8sClient.Get(ctx, typeNamespacedName, nbpolicy) if err != nil && errors.IsNotFound(err) { resource := &netbirdiov1.NBPolicy{ ObjectMeta: metav1.ObjectMeta{ Name: resourceName, Namespace: "default", }, // TODO(user): Specify other spec details if needed. } Expect(k8sClient.Create(ctx, resource)).To(Succeed()) } }) AfterEach(func() { // TODO(user): Cleanup logic after each test, like removing the resource instance. resource := &netbirdiov1.NBPolicy{} err := k8sClient.Get(ctx, typeNamespacedName, resource) Expect(err).NotTo(HaveOccurred()) By("Cleanup the specific resource instance NBPolicy") Expect(k8sClient.Delete(ctx, resource)).To(Succeed()) }) It("should successfully reconcile the resource", func() { Skip("Not implemented yet") By("Reconciling the created resource") controllerReconciler := &NBPolicyReconciler{ Client: k8sClient, Scheme: k8sClient.Scheme(), } _, err := controllerReconciler.Reconcile(ctx, reconcile.Request{ NamespacedName: typeNamespacedName, }) Expect(err).NotTo(HaveOccurred()) // TODO(user): Add more specific assertions depending on your controller's reconciliation logic. // Example: If you expect a certain status condition after reconciliation, verify it here. }) }) })