github.com/aquasecurity/trivy-iac@v0.8.1-0.20240127024015-3d8e412cf0ab/internal/adapters/terraform/kubernetes/adapt_test.go (about)

     1  package kubernetes
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/stretchr/testify/assert"
     7  )
     8  
     9  func TestIsMatchingTypeLabel(t *testing.T) {
    10  	tests := []struct {
    11  		name         string
    12  		typeLabel    string
    13  		resourceType string
    14  		expected     bool
    15  	}{
    16  		{
    17  			name:         "without version",
    18  			typeLabel:    "kubernetes_network_policy",
    19  			resourceType: "kubernetes_network_policy",
    20  			expected:     true,
    21  		},
    22  		{
    23  			name:         "v1",
    24  			typeLabel:    "kubernetes_network_policy_v1",
    25  			resourceType: "kubernetes_network_policy",
    26  			expected:     true,
    27  		},
    28  		{
    29  			name:         "beta version",
    30  			typeLabel:    "kubernetes_horizontal_pod_autoscaler_v2beta2",
    31  			resourceType: "kubernetes_horizontal_pod_autoscaler",
    32  			expected:     true,
    33  		},
    34  		{
    35  			name:         "another type of resource",
    36  			typeLabel:    "kubernetes_network_policy",
    37  			resourceType: "kubernetes_horizontal_pod_autoscaler",
    38  			expected:     false,
    39  		},
    40  		{
    41  			name:         "similar resource type",
    42  			typeLabel:    "kubernetes_network_policy_test_v1",
    43  			resourceType: "kubernetes_network_policy",
    44  			expected:     false,
    45  		},
    46  		{
    47  			name:         "empty resource type",
    48  			typeLabel:    "kubernetes_network_policy_test_v1",
    49  			resourceType: "",
    50  			expected:     false,
    51  		},
    52  	}
    53  
    54  	for _, tt := range tests {
    55  		t.Run(tt.name, func(t *testing.T) {
    56  			got := isMatchingTypeLabel(tt.typeLabel, tt.resourceType)
    57  			assert.Equal(t, tt.expected, got)
    58  		})
    59  	}
    60  }