From 27e577298625db8d5d06edde206ef95775b6f665 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Charles-Edouard=20Br=C3=A9t=C3=A9ch=C3=A9?= Date: Thu, 30 Jun 2022 21:36:28 +0200 Subject: [PATCH] fix: add more verify images e2e test for bool fields (#4172) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Charles-Edouard Brétéché Co-authored-by: Vyankatesh Kudtarkar --- test/e2e/framework/framework.go | 8 ++++- test/e2e/verifyimages/resources.go | 2 ++ test/e2e/verifyimages/verifyimages_test.go | 34 ++++++++++++---------- 3 files changed, 27 insertions(+), 17 deletions(-) diff --git a/test/e2e/framework/framework.go b/test/e2e/framework/framework.go index e22cab9afc..d90b1200c8 100644 --- a/test/e2e/framework/framework.go +++ b/test/e2e/framework/framework.go @@ -17,7 +17,7 @@ func Setup(t *testing.T) { } } -func Run(t *testing.T, steps ...step.Step) { +func RunTest(t *testing.T, steps ...step.Step) { ginkgo.By("Creating client ...") client := client.New(t) for _, step := range steps { @@ -25,3 +25,9 @@ func Run(t *testing.T, steps ...step.Step) { } ginkgo.By("Cleaning up ...") } + +func RunSubTest(t *testing.T, name string, steps ...step.Step) { + t.Run(name, func(t *testing.T) { + RunTest(t, steps...) + }) +} diff --git a/test/e2e/verifyimages/resources.go b/test/e2e/verifyimages/resources.go index e5c4acb78e..e066ecede8 100644 --- a/test/e2e/verifyimages/resources.go +++ b/test/e2e/verifyimages/resources.go @@ -221,6 +221,8 @@ spec: verifyImages: - image: "harbor2.zoller.com/cosign/*" mutateDigest: false + verifyDigest: false + required: false key: |- -----BEGIN PUBLIC KEY----- MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEpNlOGZ323zMlhs4bcKSpAKQvbcWi diff --git a/test/e2e/verifyimages/verifyimages_test.go b/test/e2e/verifyimages/verifyimages_test.go index ed88ad334e..565fba32f3 100644 --- a/test/e2e/verifyimages/verifyimages_test.go +++ b/test/e2e/verifyimages/verifyimages_test.go @@ -156,20 +156,22 @@ func TestImageVerify(t *testing.T) { func Test_BoolFields(t *testing.T) { framework.Setup(t) - framework.Run(t, - step.CreateClusterPolicy(cpolVerifyImages), - step.By("Checking spec.rules[0].verifyImages[0].mutateDigest is false ..."), - step.ExpectResource(id.ClusterPolicy("verify-images"), func(resource *unstructured.Unstructured) { - rules, found, err := unstructured.NestedSlice(resource.UnstructuredContent(), "spec", "rules") - Expect(err).NotTo(HaveOccurred()) - Expect(found).To(BeTrue()) - verifyImages, found, err := unstructured.NestedSlice(rules[0].(map[string]interface{}), "verifyImages") - Expect(err).NotTo(HaveOccurred()) - Expect(found).To(BeTrue()) - mutateDigest, found, err := unstructured.NestedBool(verifyImages[0].(map[string]interface{}), "mutateDigest") - Expect(err).NotTo(HaveOccurred()) - Expect(found).To(BeTrue()) - Expect(mutateDigest).To(BeFalse()) - }), - ) + for _, field := range []string{"mutateDigest", "verifyDigest", "required"} { + framework.RunSubTest(t, field, + step.CreateClusterPolicy(cpolVerifyImages), + step.By(fmt.Sprintf("Checking spec.rules[0].verifyImages[0].%s is false ...", field)), + step.ExpectResource(id.ClusterPolicy("verify-images"), func(resource *unstructured.Unstructured) { + rules, found, err := unstructured.NestedSlice(resource.UnstructuredContent(), "spec", "rules") + Expect(err).NotTo(HaveOccurred()) + Expect(found).To(BeTrue()) + verifyImages, found, err := unstructured.NestedSlice(rules[0].(map[string]interface{}), "verifyImages") + Expect(err).NotTo(HaveOccurred()) + Expect(found).To(BeTrue()) + mutateDigest, found, err := unstructured.NestedBool(verifyImages[0].(map[string]interface{}), field) + Expect(err).NotTo(HaveOccurred()) + Expect(found).To(BeTrue()) + Expect(mutateDigest).To(BeFalse()) + }), + ) + } }