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  }