github.com/kiali/kiali@v1.84.0/business/checkers/k8shttproutes/no_k8sgateway_checker_test.go (about) 1 package k8shttproutes 2 3 import ( 4 "testing" 5 6 "github.com/stretchr/testify/assert" 7 k8s_networking_v1 "sigs.k8s.io/gateway-api/apis/v1" 8 9 "github.com/kiali/kiali/config" 10 "github.com/kiali/kiali/kubernetes" 11 "github.com/kiali/kiali/models" 12 "github.com/kiali/kiali/tests/data" 13 "github.com/kiali/kiali/tests/testutils/validations" 14 ) 15 16 func TestMissingK8sGateway(t *testing.T) { 17 assert := assert.New(t) 18 conf := config.NewConfig() 19 config.Set(conf) 20 21 checker := NoK8sGatewayChecker{ 22 K8sHTTPRoute: data.CreateHTTPRoute("route", "bookinfo", "gatewayapi", []string{"bookinfo"}), 23 GatewayNames: make(map[string]struct{}), 24 } 25 26 vals, valid := checker.Check() 27 assert.False(valid) 28 assert.NotEmpty(vals) 29 assert.Equal(models.ErrorSeverity, vals[0].Severity) 30 assert.NoError(validations.ConfirmIstioCheckMessage("k8shttproutes.nok8sgateway", vals[0])) 31 } 32 33 func TestMissingK8sGateways(t *testing.T) { 34 assert := assert.New(t) 35 conf := config.NewConfig() 36 config.Set(conf) 37 38 checker := NoK8sGatewayChecker{ 39 K8sHTTPRoute: data.AddParentRefToHTTPRoute("gateway2", "bookinfo2", 40 data.CreateHTTPRoute("route", "bookinfo", "gatewayapi", []string{"bookinfo"})), 41 GatewayNames: make(map[string]struct{}), 42 } 43 44 vals, valid := checker.Check() 45 assert.False(valid) 46 assert.NotEmpty(vals) 47 assert.Len(vals, 2) 48 assert.Equal(models.ErrorSeverity, vals[0].Severity) 49 assert.NoError(validations.ConfirmIstioCheckMessage("k8shttproutes.nok8sgateway", vals[0])) 50 assert.Equal(models.ErrorSeverity, vals[1].Severity) 51 assert.NoError(validations.ConfirmIstioCheckMessage("k8shttproutes.nok8sgateway", vals[1])) 52 } 53 54 func TestValidAndMissingK8sGateway(t *testing.T) { 55 assert := assert.New(t) 56 conf := config.NewConfig() 57 config.Set(conf) 58 59 var empty struct{} 60 61 checker := NoK8sGatewayChecker{ 62 K8sHTTPRoute: data.AddParentRefToHTTPRoute("correctgw", "bookinfo2", 63 data.CreateHTTPRoute("route", "bookinfo", "gatewayapi", []string{"bookinfo"})), 64 GatewayNames: map[string]struct{}{"correctgw": empty}, 65 } 66 67 vals, valid := checker.Check() 68 assert.False(valid) 69 assert.NotEmpty(vals) 70 assert.Equal(models.ErrorSeverity, vals[0].Severity) 71 assert.NoError(validations.ConfirmIstioCheckMessage("k8shttproutes.nok8sgateway", vals[0])) 72 } 73 74 func TestFoundK8sGateway(t *testing.T) { 75 assert := assert.New(t) 76 conf := config.NewConfig() 77 config.Set(conf) 78 79 checker := NoK8sGatewayChecker{ 80 K8sHTTPRoute: data.CreateHTTPRoute("route", "bookinfo", "my-gateway", []string{"bookinfo"}), 81 GatewayNames: kubernetes.K8sGatewayNames([]*k8s_networking_v1.Gateway{ 82 data.CreateEmptyK8sGateway("my-gateway", "bookinfo"), 83 }), 84 } 85 86 vals, valid := checker.Check() 87 assert.True(valid) 88 assert.Empty(vals) 89 }