@@ -3,11 +3,14 @@ package e2e
3
3
import (
4
4
"context"
5
5
"fmt"
6
+ "reflect"
7
+ "runtime"
8
+ "strings"
6
9
7
10
"github.com/blang/semver"
8
11
. "github.com/onsi/ginkgo"
9
12
. "github.com/onsi/gomega"
10
- . "github.com/operator-framework/operator-lifecycle-manager/test/e2e/dsl "
13
+ "github.com/onsi/gomega/types "
11
14
corev1 "k8s.io/api/core/v1"
12
15
rbacv1 "k8s.io/api/rbac/v1"
13
16
apiextensionsv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1"
@@ -21,8 +24,11 @@ import (
21
24
"github.com/operator-framework/operator-lifecycle-manager/pkg/lib/operatorclient"
22
25
"github.com/operator-framework/operator-lifecycle-manager/pkg/lib/ownerutil"
23
26
"github.com/operator-framework/operator-lifecycle-manager/test/e2e/ctx"
27
+ . "github.com/operator-framework/operator-lifecycle-manager/test/e2e/dsl"
24
28
)
25
29
30
+ const k8ErrorImportPath = "k8s.io/apimachinery/pkg/api/errors."
31
+
26
32
var _ = Describe ("Garbage collection for dependent resources" , func () {
27
33
var (
28
34
kubeClient operatorclient.ClientInterface
@@ -276,7 +282,7 @@ var _ = Describe("Garbage collection for dependent resources", func() {
276
282
It ("should have deleted the dependent since both the owners were deleted" , func () {
277
283
_ , err := kubeClient .KubernetesInterface ().CoreV1 ().ConfigMaps (testNamespace ).Get (context .TODO (), dependent .GetName (), metav1.GetOptions {})
278
284
Expect (err ).To (HaveOccurred ())
279
- Expect (k8serrors .IsNotFound ( err )). To ( BeTrue ( ))
285
+ Expect (k8serrors .IsNotFound ). Should ( assertOnk8Error ( "IsNotFound" , err ))
280
286
ctx .Ctx ().Logf ("dependent successfully garbage collected after both owners were deleted" )
281
287
})
282
288
@@ -602,3 +608,16 @@ var _ = Describe("Garbage collection for dependent resources", func() {
602
608
})
603
609
})
604
610
})
611
+
612
+ // assertOnk8Error validates that the actual error passed in matches the expected k8 error
613
+ // using gomega's matcher
614
+ func assertOnk8Error (expectedk8Error string , actualError error ) types.GomegaMatcher {
615
+ return WithTransform (func (f func (e error ) bool ) string {
616
+ var errFuncName string
617
+ if f (actualError ) {
618
+ errFuncName = runtime .FuncForPC (reflect .ValueOf (f ).Pointer ()).Name ()
619
+ errFuncName = strings .Split (errFuncName , k8ErrorImportPath )[1 ]
620
+ }
621
+ return errFuncName
622
+ }, Equal (expectedk8Error ))
623
+ }
0 commit comments