github.com/kiali/kiali@v1.84.0/business/checkers/common/workload_selector_checker_test.go (about) 1 package common 2 3 import ( 4 "testing" 5 6 "github.com/stretchr/testify/assert" 7 8 "github.com/kiali/kiali/models" 9 "github.com/kiali/kiali/tests/data" 10 "github.com/kiali/kiali/tests/testutils/validations" 11 ) 12 13 func TestPresentWorkloads(t *testing.T) { 14 assert := assert.New(t) 15 16 validations, valid := WorkloadSelectorNoWorkloadFoundChecker( 17 "sidecar", 18 map[string]string{ 19 "app": "details", 20 "version": "v1", 21 }, 22 workloadList(), 23 ).Check() 24 25 // Well configured object 26 assert.True(valid) 27 assert.Empty(validations) 28 29 validations, valid = WorkloadSelectorNoWorkloadFoundChecker( 30 "sidecar", 31 map[string]string{ 32 "app": "details", 33 }, 34 workloadList(), 35 ).Check() 36 37 // Well configured object 38 assert.True(valid) 39 assert.Empty(validations) 40 } 41 42 func TestWorkloadNotFound(t *testing.T) { 43 assert := assert.New(t) 44 testFailureWithWorkloadList(assert, map[string]string{"app": "wrong", "version": "v1"}) 45 testFailureWithWorkloadList(assert, map[string]string{"app": "details", "version": "wrong"}) 46 testFailureWithWorkloadList(assert, map[string]string{"app": "wrong"}) 47 testFailureWithEmptyWorkloadList(assert, map[string]string{"app": "wrong", "version": "v1"}) 48 testFailureWithEmptyWorkloadList(assert, map[string]string{"app": "details", "version": "wrong"}) 49 testFailureWithEmptyWorkloadList(assert, map[string]string{"app": "wrong"}) 50 } 51 52 func testFailureWithWorkloadList(assert *assert.Assertions, selector map[string]string) { 53 testFailure(assert, selector, workloadList(), "generic.selector.workloadnotfound") 54 } 55 56 func testFailureWithEmptyWorkloadList(assert *assert.Assertions, selector map[string]string) { 57 testFailure(assert, selector, data.CreateWorkloadsPerNamespace([]string{"test"}, models.WorkloadListItem{}), "generic.selector.workloadnotfound") 58 } 59 60 func testFailure(assert *assert.Assertions, selector map[string]string, wl map[string]models.WorkloadList, code string) { 61 vals, valid := WorkloadSelectorNoWorkloadFoundChecker( 62 "sidecar", 63 selector, 64 wl, 65 ).Check() 66 67 assert.True(valid) 68 assert.NotEmpty(vals) 69 assert.Len(vals, 1) 70 assert.NoError(validations.ConfirmIstioCheckMessage(code, vals[0])) 71 assert.Equal(vals[0].Severity, models.WarningSeverity) 72 assert.Equal(vals[0].Path, "spec/workloadSelector/labels") 73 }