github.com/verrazzano/verrazzano@v1.7.1/tests/e2e/multicluster/verify-resources/verify_resources_test.go (about) 1 // Copyright (c) 2021, 2023, Oracle and/or its affiliates. 2 // Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl. 3 4 package resources_test 5 6 import ( 7 "fmt" 8 9 "github.com/verrazzano/verrazzano/tests/e2e/pkg/test/framework" 10 11 "os" 12 "strings" 13 "time" 14 15 "github.com/verrazzano/verrazzano/pkg/k8s/resource" 16 17 . "github.com/onsi/ginkgo/v2" 18 . "github.com/onsi/gomega" 19 "github.com/verrazzano/verrazzano/pkg/k8sutil" 20 "github.com/verrazzano/verrazzano/tests/e2e/pkg" 21 ) 22 23 const shortWaitTimeout = 3 * time.Minute 24 const shortPollInterval = 5 * time.Second 25 26 var t = framework.NewTestFramework("resources_test") 27 28 var afterSuite = t.AfterSuiteFunc(func() {}) 29 var _ = AfterSuite(afterSuite) 30 var beforeSuite = t.BeforeSuiteFunc(func() {}) 31 var _ = BeforeSuite(beforeSuite) 32 var _ = t.AfterEach(func() {}) 33 34 var _ = t.Describe("Multi Cluster Verify Resources", Label("f:multicluster.register"), func() { 35 t.Context("Admin Cluster", func() { 36 t.BeforeEach(func() { 37 os.Setenv(k8sutil.EnvVarTestKubeConfig, os.Getenv("ADMIN_KUBECONFIG")) 38 }) 39 40 t.It("Create VerrazzanoProject with invalid content", func() { 41 Eventually(func() bool { 42 file, err := pkg.FindTestDataFile("testdata/multicluster/verrazzanoproject-placement-clusters-invalid.yaml") 43 if err != nil { 44 pkg.Log(pkg.Error, fmt.Sprintf("Expected an error message creating invalid VerrazzanoProject: %v", err)) 45 return false 46 } 47 err = resource.CreateOrUpdateResourceFromFile(file, t.Logs) 48 if err == nil { 49 pkg.Log(pkg.Error, "Expected an error creating invalid VerrazzanoProject") 50 return false 51 } 52 if !strings.Contains(err.Error(), "invalid-cluster-name") { 53 pkg.Log(pkg.Error, fmt.Sprintf("Expected an error message creating invalid VerrazzanoProject: %v", err)) 54 return false 55 } 56 return true 57 }, shortWaitTimeout, shortPollInterval).Should(BeTrue(), "Expected VerrazzanoProject validation error") 58 }) 59 60 t.It("Create MultiClusterSecret with invalid content", func() { 61 Eventually(func() bool { 62 file, err := pkg.FindTestDataFile("testdata/multicluster/multicluster_secret_placement_clusters_invalid.yaml") 63 if err != nil { 64 pkg.Log(pkg.Error, fmt.Sprintf("Expected an error message creating invalid resource: %v", err)) 65 return false 66 } 67 err = resource.CreateOrUpdateResourceFromFile(file, t.Logs) 68 if err == nil { 69 pkg.Log(pkg.Error, "Expected an error creating invalid resource") 70 return false 71 } 72 if !strings.Contains(err.Error(), "invalid-cluster-name") { 73 pkg.Log(pkg.Error, fmt.Sprintf("Expected an error message creating invalid resource: %v", err)) 74 return false 75 } 76 return true 77 }, shortWaitTimeout, shortPollInterval).Should(BeTrue(), "Expected a resource validation error") 78 }) 79 80 t.It("Create MultiClusterConfigmap with invalid content", func() { 81 Eventually(func() bool { 82 file, err := pkg.FindTestDataFile("testdata/multicluster/multicluster_configmap_placement_clusters_invalid.yaml") 83 if err != nil { 84 pkg.Log(pkg.Error, fmt.Sprintf("Expected an error message creating invalid resource: %v", err)) 85 return false 86 } 87 err = resource.CreateOrUpdateResourceFromFile(file, t.Logs) 88 if err == nil { 89 pkg.Log(pkg.Error, "Expected an error creating invalid resource") 90 return false 91 } 92 if !strings.Contains(err.Error(), "invalid-cluster-name") { 93 pkg.Log(pkg.Error, fmt.Sprintf("Expected an error message creating invalid resource: %v", err)) 94 return false 95 } 96 return true 97 }, shortWaitTimeout, shortPollInterval).Should(BeTrue(), "Expected a resource validation error") 98 }) 99 100 t.It("Create MultiClusterComponent with invalid content", func() { 101 Eventually(func() bool { 102 file, err := pkg.FindTestDataFile("testdata/multicluster/multicluster_component_placement_clusters_invalid.yaml") 103 if err != nil { 104 pkg.Log(pkg.Error, fmt.Sprintf("Expected an error message creating invalid resource: %v", err)) 105 return false 106 } 107 err = resource.CreateOrUpdateResourceFromFile(file, t.Logs) 108 if err == nil { 109 pkg.Log(pkg.Error, "Expected an error creating invalid resource") 110 return false 111 } 112 if !strings.Contains(err.Error(), "invalid-cluster-name") { 113 pkg.Log(pkg.Error, fmt.Sprintf("Expected an error message creating invalid resource: %v", err)) 114 return false 115 } 116 return true 117 }, shortWaitTimeout, shortPollInterval).Should(BeTrue(), "Expected a resource validation error") 118 }) 119 120 t.It("Create MultiClusterApplicationConfiguration with invalid content", func() { 121 Eventually(func() bool { 122 file, err := pkg.FindTestDataFile("testdata/multicluster/multicluster_appconf_placement_clusters_invalid.yaml") 123 if err != nil { 124 pkg.Log(pkg.Error, fmt.Sprintf("Expected an error message creating invalid resource: %v", err)) 125 return false 126 } 127 err = resource.CreateOrUpdateResourceFromFile(file, t.Logs) 128 if err == nil { 129 pkg.Log(pkg.Error, "Expected an error creating invalid resource") 130 return false 131 } 132 if !strings.Contains(err.Error(), "invalid-cluster-name") { 133 pkg.Log(pkg.Error, fmt.Sprintf("Expected an error message creating invalid resource: %v", err)) 134 return false 135 } 136 return true 137 }, shortWaitTimeout, shortPollInterval).Should(BeTrue(), "Expected a resource validation error") 138 }) 139 140 }) 141 142 })