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

     1  package gomega
     2  
     3  import (
     4  	"context"
     5  
     6  	. "github.com/onsi/gomega"
     7  	"github.com/operator-framework/operator-lifecycle-manager/test/e2e/ctx"
     8  	"github.com/operator-framework/operator-lifecycle-manager/test/e2e/util"
     9  	k8scontrollerclient "sigs.k8s.io/controller-runtime/pkg/client"
    10  )
    11  
    12  func EventuallyResource(actual k8scontrollerclient.Object, intervals ...interface{}) AsyncAssertion {
    13  	client := ctx.Ctx().Client()
    14  	clone := actual.DeepCopyObject().(k8scontrollerclient.Object)
    15  	key := k8scontrollerclient.ObjectKeyFromObject(actual)
    16  	getObjectFn := func() k8scontrollerclient.Object {
    17  		if err := client.Get(context.Background(), key, clone); err != nil {
    18  			util.Logf("ERROR getting resource '%s'", util.ObjectToJsonString(key), err)
    19  			return nil
    20  		}
    21  		return clone
    22  	}
    23  	return Eventually(getObjectFn, intervals...)
    24  }