From 042e426b01863716bcb2191c2806c48cebf2c181 Mon Sep 17 00:00:00 2001 From: Kamil Hristov Date: Mon, 29 Nov 2021 04:33:22 +0200 Subject: [PATCH] Improve admission e2e-tests (#7953) Check if the message equals an expected value for checks without errors. --- test/e2e/admission/admission.go | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/test/e2e/admission/admission.go b/test/e2e/admission/admission.go index 030c3854a..2099e54d4 100644 --- a/test/e2e/admission/admission.go +++ b/test/e2e/admission/admission.go @@ -150,7 +150,8 @@ var _ = framework.IngressNginxDescribe("[Serial] admission controller", func() { }) ginkgo.It("should not return an error if the Ingress V1 definition is valid with Ingress Class", func() { - err := createIngress(f.Namespace, validV1Ingress) + out, err := createIngress(f.Namespace, validV1Ingress) + assert.Equal(ginkgo.GinkgoT(), "ingress.networking.k8s.io/extensions created\n", out) assert.Nil(ginkgo.GinkgoT(), err, "creating an ingress using kubectl") f.WaitForNginxConfiguration(func(cfg string) bool { @@ -165,7 +166,8 @@ var _ = framework.IngressNginxDescribe("[Serial] admission controller", func() { }) ginkgo.It("should not return an error if the Ingress V1 definition is valid with IngressClass annotation", func() { - err := createIngress(f.Namespace, validV1IngressAnnotation) + out, err := createIngress(f.Namespace, validV1IngressAnnotation) + assert.Equal(ginkgo.GinkgoT(), "ingress.networking.k8s.io/extensions-class created\n", out) assert.Nil(ginkgo.GinkgoT(), err, "creating an ingress using kubectl") f.WaitForNginxConfiguration(func(cfg string) bool { @@ -180,7 +182,8 @@ var _ = framework.IngressNginxDescribe("[Serial] admission controller", func() { }) ginkgo.It("should return an error if the Ingress V1 definition contains invalid annotations", func() { - err := createIngress(f.Namespace, invalidV1Ingress) + out, err := createIngress(f.Namespace, invalidV1Ingress) + assert.Empty(ginkgo.GinkgoT(), out) assert.NotNil(ginkgo.GinkgoT(), err, "creating an ingress using kubectl") _, err = f.KubeClientSet.NetworkingV1().Ingresses(f.Namespace).Get(context.TODO(), "extensions-invalid", metav1.GetOptions{}) @@ -270,20 +273,22 @@ spec: ` ) -func createIngress(namespace, ingressDefinition string) error { +func createIngress(namespace, ingressDefinition string) (string, error) { var ( + execOut bytes.Buffer execErr bytes.Buffer ) cmd := exec.Command("/bin/bash", "-c", fmt.Sprintf("%v --warnings-as-errors=false apply --namespace %s -f -", framework.KubectlPath, namespace)) cmd.Stdin = strings.NewReader(ingressDefinition) + cmd.Stdout = &execOut cmd.Stderr = &execErr err := cmd.Run() if err != nil { stderr := strings.TrimSpace(execErr.String()) - return fmt.Errorf("Kubectl error: %v\n%v", err, stderr) + return "", fmt.Errorf("kubectl error: %v\n%v", err, stderr) } - return nil + return execOut.String(), nil }