Skip to content

Commit f766778

Browse files
committed
Added CustomMatcher for asserting on k8 errors
1 parent 1fdd347 commit f766778

File tree

3 files changed

+31
-17
lines changed

3 files changed

+31
-17
lines changed

test/e2e/bundle_e2e_test.go

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -64,15 +64,13 @@ var _ = Describe("Installing bundles with new object types", func() {
6464
err = json.Unmarshal(data, &vpaCRD)
6565
Expect(err).ToNot(HaveOccurred(), "could not convert vpa crd to unstructured")
6666

67-
Eventually(func() error {
68-
err := ctx.Ctx().Client().Create(context.TODO(), &vpaCRD)
67+
Eventually(func() bool {
68+
err = ctx.Ctx().Client().Create(context.TODO(), &vpaCRD)
6969
if err != nil {
70-
if !k8serrors.IsAlreadyExists(err) {
71-
return err
72-
}
70+
return k8serrors.IsAlreadyExists(err)
7371
}
74-
return nil
75-
}).Should(Succeed())
72+
return true
73+
}).Should(BeTrue())
7674

7775
// ensure vpa crd is established and accepted on the cluster before continuing
7876
Eventually(func() (bool, error) {

test/e2e/gc_e2e_test.go

Lines changed: 23 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,15 @@ package e2e
33
import (
44
"context"
55
"fmt"
6-
76
"github.com/blang/semver"
87
. "github.com/onsi/ginkgo"
98
. "github.com/onsi/gomega"
9+
"github.com/onsi/gomega/types"
10+
"github.com/operator-framework/api/pkg/operators/v1alpha1"
11+
"github.com/operator-framework/operator-lifecycle-manager/pkg/api/client/clientset/versioned"
12+
"github.com/operator-framework/operator-lifecycle-manager/pkg/lib/operatorclient"
13+
"github.com/operator-framework/operator-lifecycle-manager/pkg/lib/ownerutil"
14+
"github.com/operator-framework/operator-lifecycle-manager/test/e2e/ctx"
1015
. "github.com/operator-framework/operator-lifecycle-manager/test/e2e/dsl"
1116
corev1 "k8s.io/api/core/v1"
1217
rbacv1 "k8s.io/api/rbac/v1"
@@ -15,14 +20,13 @@ import (
1520
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
1621
"k8s.io/apimachinery/pkg/util/rand"
1722
apiregistrationv1 "k8s.io/kube-aggregator/pkg/apis/apiregistration/v1"
18-
19-
"github.com/operator-framework/api/pkg/operators/v1alpha1"
20-
"github.com/operator-framework/operator-lifecycle-manager/pkg/api/client/clientset/versioned"
21-
"github.com/operator-framework/operator-lifecycle-manager/pkg/lib/operatorclient"
22-
"github.com/operator-framework/operator-lifecycle-manager/pkg/lib/ownerutil"
23-
"github.com/operator-framework/operator-lifecycle-manager/test/e2e/ctx"
23+
"reflect"
24+
"runtime"
25+
"strings"
2426
)
2527

28+
const k8ErrorImportPath = "k8s.io/apimachinery/pkg/api/errors."
29+
2630
var _ = Describe("Garbage collection for dependent resources", func() {
2731
var (
2832
kubeClient operatorclient.ClientInterface
@@ -276,7 +280,7 @@ var _ = Describe("Garbage collection for dependent resources", func() {
276280
It("should have deleted the dependent since both the owners were deleted", func() {
277281
_, err := kubeClient.KubernetesInterface().CoreV1().ConfigMaps(testNamespace).Get(context.TODO(), dependent.GetName(), metav1.GetOptions{})
278282
Expect(err).To(HaveOccurred())
279-
Expect(k8serrors.IsNotFound(err)).To(BeTrue())
283+
Expect(k8serrors.IsNotFound).Should(assertOnk8Error("IsNotFound", err))
280284
ctx.Ctx().Logf("dependent successfully garbage collected after both owners were deleted")
281285
})
282286

@@ -602,3 +606,14 @@ var _ = Describe("Garbage collection for dependent resources", func() {
602606
})
603607
})
604608
})
609+
610+
func assertOnk8Error(expectedk8Error string, actualError error) types.GomegaMatcher {
611+
return WithTransform(func(f func(e error) bool) string {
612+
var errFuncName string
613+
if f(actualError) {
614+
errFuncName = runtime.FuncForPC(reflect.ValueOf(f).Pointer()).Name()
615+
errFuncName = strings.Split(errFuncName, k8ErrorImportPath)[1]
616+
}
617+
return errFuncName
618+
}, Equal(expectedk8Error))
619+
}

test/e2e/scoped_client_test.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import (
66

77
. "github.com/onsi/ginkgo"
88
"github.com/onsi/ginkgo/extensions/table"
9+
. "github.com/onsi/gomega"
910
"github.com/sirupsen/logrus"
1011
"github.com/stretchr/testify/require"
1112
corev1 "k8s.io/api/core/v1"
@@ -61,7 +62,7 @@ var _ = Describe("Scoped Client", func() {
6162
// lack of permission.
6263
name: "ServiceAccountDoesNotHaveAnyPermission",
6364
assertFunc: func(errGot error) {
64-
require.True(GinkgoT(), k8serrors.IsForbidden(errGot))
65+
Expect(k8serrors.IsForbidden).Should(assertOnk8Error("IsForbidden", errGot))
6566
},
6667
}),
6768
table.Entry("ServiceAccountHasPermission", testParameter{
@@ -73,7 +74,7 @@ var _ = Describe("Scoped Client", func() {
7374
return
7475
},
7576
assertFunc: func(errGot error) {
76-
require.True(GinkgoT(), k8serrors.IsNotFound(errGot))
77+
Expect(k8serrors.IsNotFound).Should(assertOnk8Error("IsNotFound", errGot))
7778
},
7879
}),
7980
}

0 commit comments

Comments
 (0)