github.com/kiali/kiali@v1.84.0/business/checkers/sidecars/outbound_traffic_policy_mode_test.go (about) 1 package sidecars 2 3 import ( 4 "testing" 5 6 "github.com/stretchr/testify/assert" 7 "istio.io/api/networking/v1beta1" 8 9 "github.com/kiali/kiali/tests/data" 10 ) 11 12 func TestOutboundTrafficPolicyModeCheck(t *testing.T) { 13 assert := assert.New(t) 14 15 sc := data.CreateSidecar("testsidecar", "testns") 16 17 // no OutboundTrafficPolicy is OK - all defaults are clear and unambiguous 18 sc.Spec.OutboundTrafficPolicy = nil 19 vals, valid := OutboundTrafficPolicyModeChecker{ 20 Sidecar: sc, 21 }.Check() 22 assert.Empty(vals) 23 assert.True(valid) 24 25 // OutboundTrafficPolicy with no mode defined is ambiguous (it is still valid though) 26 sc.Spec.OutboundTrafficPolicy = &v1beta1.OutboundTrafficPolicy{} 27 vals, valid = OutboundTrafficPolicyModeChecker{ 28 Sidecar: sc, 29 }.Check() 30 assert.Equal(1, len(vals)) 31 assert.Equal("KIA1007", vals[0].Code) 32 assert.True(valid) 33 34 // OutboundTrafficPolicy with mode defined with the default value is ambiguous (it is still valid though) 35 sc.Spec.OutboundTrafficPolicy = &v1beta1.OutboundTrafficPolicy{ 36 Mode: v1beta1.OutboundTrafficPolicy_Mode(0), 37 } 38 vals, valid = OutboundTrafficPolicyModeChecker{ 39 Sidecar: sc, 40 }.Check() 41 assert.Equal(1, len(vals)) 42 assert.Equal("KIA1007", vals[0].Code) 43 assert.True(valid) 44 45 // OutboundTrafficPolicy with mode defined with a non-default value is clear and unambiguous. 46 sc.Spec.OutboundTrafficPolicy = &v1beta1.OutboundTrafficPolicy{ 47 Mode: v1beta1.OutboundTrafficPolicy_Mode(1), 48 } 49 vals, valid = OutboundTrafficPolicyModeChecker{ 50 Sidecar: sc, 51 }.Check() 52 assert.Empty(vals) 53 assert.True(valid) 54 }