github.com/operator-framework/operator-lifecycle-manager@v0.30.0/test/e2e/resource_manager_test.go (about)

     1  package e2e
     2  
     3  import (
     4  	"context"
     5  
     6  	. "github.com/onsi/ginkgo/v2"
     7  	. "github.com/onsi/gomega"
     8  	"github.com/operator-framework/operator-lifecycle-manager/test/e2e/util"
     9  	corev1 "k8s.io/api/core/v1"
    10  	k8serror "k8s.io/apimachinery/pkg/api/errors"
    11  	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
    12  	"sigs.k8s.io/controller-runtime/pkg/client"
    13  
    14  	"github.com/operator-framework/operator-lifecycle-manager/test/e2e/ctx"
    15  )
    16  
    17  var _ = Describe("ResourceManager", func() {
    18  	var generatedNamespace corev1.Namespace
    19  
    20  	BeforeEach(func() {
    21  		ctx.Ctx().NewE2EClientSession()
    22  		generatedNamespace = SetupGeneratedTestNamespace(genName("resource-manager-e2e-"))
    23  	})
    24  
    25  	AfterEach(func() {
    26  		TeardownNamespace(generatedNamespace.GetName())
    27  		Expect(ctx.Ctx().E2EClient().Reset()).To(Succeed())
    28  	})
    29  
    30  	It("should tag resources created with it", func() {
    31  		By(`Create a namespace`)
    32  		ns := &corev1.Namespace{
    33  			ObjectMeta: metav1.ObjectMeta{
    34  				Name: genName("test-"),
    35  			},
    36  		}
    37  		Expect(ctx.Ctx().E2EClient().Create(context.TODO(), ns)).To(Succeed())
    38  
    39  		By(`Get namespace`)
    40  		Expect(ctx.Ctx().E2EClient().Get(context.TODO(), client.ObjectKeyFromObject(ns), ns)).To(Succeed())
    41  		Expect(ns.GetAnnotations()).NotTo(BeEmpty())
    42  		Expect(ns.GetAnnotations()[util.E2ETestNameTag]).To(Equal("ResourceManager should tag resources created with it"))
    43  	})
    44  
    45  	It("should delete resources on reset", func() {
    46  		By(`Create a namespace`)
    47  		ns := &corev1.Namespace{
    48  			ObjectMeta: metav1.ObjectMeta{
    49  				Name: genName("test-"),
    50  			},
    51  		}
    52  		Expect(ctx.Ctx().E2EClient().Create(context.TODO(), ns)).To(Succeed())
    53  
    54  		By(`Add a config map`)
    55  		By(`creating the configmap in the generated (spec) namespace so if the namespace (ns, above) gets deleted on reset it won't take the config map with it`)
    56  		configMap := &corev1.ConfigMap{
    57  			ObjectMeta: metav1.ObjectMeta{
    58  				Name:      genName("configmap-"),
    59  				Namespace: generatedNamespace.GetName(),
    60  			},
    61  		}
    62  		Expect(ctx.Ctx().E2EClient().Create(context.TODO(), configMap))
    63  
    64  		By(`Reset the client`)
    65  		Expect(ctx.Ctx().E2EClient().Reset()).To(Succeed())
    66  
    67  		By(`And just like that resources should be gone`)
    68  		Eventually(func() error {
    69  			return ctx.Ctx().E2EClient().Get(context.TODO(), client.ObjectKeyFromObject(configMap), configMap)
    70  		}).Should(WithTransform(k8serror.IsNotFound, BeTrue()))
    71  		Eventually(func() error {
    72  			return ctx.Ctx().E2EClient().Get(context.TODO(), client.ObjectKeyFromObject(ns), ns)
    73  		}).Should(WithTransform(k8serror.IsNotFound, BeTrue()))
    74  	})
    75  })