github.com/kiali/kiali@v1.84.0/business/references/gateway_references_test.go (about) 1 package references 2 3 import ( 4 "testing" 5 6 "github.com/stretchr/testify/assert" 7 networking_v1beta1 "istio.io/client-go/pkg/apis/networking/v1beta1" 8 9 "github.com/kiali/kiali/config" 10 "github.com/kiali/kiali/models" 11 "github.com/kiali/kiali/tests/data" 12 ) 13 14 func prepareTestForGateway(gw *networking_v1beta1.Gateway, vss []*networking_v1beta1.VirtualService) models.IstioReferences { 15 gwReferences := GatewayReferences{ 16 Gateways: []*networking_v1beta1.Gateway{gw}, 17 VirtualServices: vss, 18 WorkloadsPerNamespace: map[string]models.WorkloadList{ 19 "test": data.CreateWorkloadList("istio-system", 20 data.CreateWorkloadListItem("istio-ingressgateway", map[string]string{"istio": "ingressgateway"})), 21 }, 22 } 23 return *gwReferences.References()[models.IstioReferenceKey{ObjectType: "gateway", Namespace: gw.Namespace, Name: gw.Name}] 24 } 25 26 func TestGatewayReferences(t *testing.T) { 27 assert := assert.New(t) 28 conf := config.NewConfig() 29 config.Set(conf) 30 31 // Setup mocks 32 references := prepareTestForGateway(fakeGateway(t), fakeVirtualServices(t)) 33 34 // Check Workload references 35 assert.Len(references.WorkloadReferences, 1) 36 assert.Equal(references.WorkloadReferences[0].Name, "istio-ingressgateway") 37 assert.Equal(references.WorkloadReferences[0].Namespace, "istio-system") 38 39 // Check VS references 40 assert.Len(references.ObjectReferences, 3) 41 assert.Equal(references.ObjectReferences[0].Name, "reviews1") 42 assert.Equal(references.ObjectReferences[0].Namespace, "bookinfo") 43 assert.Equal(references.ObjectReferences[0].ObjectType, "virtualservice") 44 assert.Equal(references.ObjectReferences[1].Name, "reviews2") 45 assert.Equal(references.ObjectReferences[1].Namespace, "bookinfo") 46 assert.Equal(references.ObjectReferences[1].ObjectType, "virtualservice") 47 assert.Equal(references.ObjectReferences[2].Name, "reviews3") 48 assert.Equal(references.ObjectReferences[2].Namespace, "bookinfo") 49 assert.Equal(references.ObjectReferences[2].ObjectType, "virtualservice") 50 } 51 52 func TestGatewayNoWorkloadReferences(t *testing.T) { 53 assert := assert.New(t) 54 conf := config.NewConfig() 55 config.Set(conf) 56 57 // Setup mocks 58 references := prepareTestForGateway(data.CreateEmptyGateway("reviews-empty", "bookinfo", map[string]string{"wrong": "selector"}), fakeVirtualServices(t)) 59 assert.Empty(references.WorkloadReferences) 60 } 61 62 func fakeGateway(t *testing.T) *networking_v1beta1.Gateway { 63 gwObject := data.CreateEmptyGateway("gateway", "istio-system", map[string]string{ 64 "istio": "ingressgateway", 65 }) 66 67 return gwObject 68 } 69 70 func fakeVirtualServices(t *testing.T) []*networking_v1beta1.VirtualService { 71 loader := yamlFixtureLoader("multiple-vs-gateways.yaml") 72 err := loader.Load() 73 if err != nil { 74 t.Error("Error loading test data.") 75 } 76 77 return loader.FindVirtualServiceIn("bookinfo") 78 }