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  })