github.com/khulnasoft-lab/defsec@v1.0.5-0.20230827010352-5e9f46893d95/internal/adapters/terraform/google/compute/ssl_test.go (about)

     1  package compute
     2  
     3  import (
     4  	"testing"
     5  
     6  	defsecTypes "github.com/khulnasoft-lab/defsec/pkg/types"
     7  
     8  	"github.com/khulnasoft-lab/defsec/pkg/providers/google/compute"
     9  
    10  	"github.com/khulnasoft-lab/defsec/internal/adapters/terraform/tftestutil"
    11  	"github.com/khulnasoft-lab/defsec/test/testutil"
    12  )
    13  
    14  func Test_adaptSSLPolicies(t *testing.T) {
    15  	tests := []struct {
    16  		name      string
    17  		terraform string
    18  		expected  []compute.SSLPolicy
    19  	}{
    20  		{
    21  			name: "defined",
    22  			terraform: `
    23  			resource "google_compute_ssl_policy" "example" {
    24  				name    = "production-ssl-policy"
    25  				profile = "MODERN"
    26  				min_tls_version = "TLS_1_2"
    27  			  }
    28  `,
    29  			expected: []compute.SSLPolicy{
    30  				{
    31  					Metadata:          defsecTypes.NewTestMetadata(),
    32  					Name:              defsecTypes.String("production-ssl-policy", defsecTypes.NewTestMetadata()),
    33  					Profile:           defsecTypes.String("MODERN", defsecTypes.NewTestMetadata()),
    34  					MinimumTLSVersion: defsecTypes.String("TLS_1_2", defsecTypes.NewTestMetadata()),
    35  				},
    36  			},
    37  		},
    38  		{
    39  			name: "defaults",
    40  			terraform: `
    41  			resource "google_compute_ssl_policy" "example" {
    42  			  }
    43  `,
    44  			expected: []compute.SSLPolicy{
    45  				{
    46  					Metadata:          defsecTypes.NewTestMetadata(),
    47  					Name:              defsecTypes.String("", defsecTypes.NewTestMetadata()),
    48  					Profile:           defsecTypes.String("", defsecTypes.NewTestMetadata()),
    49  					MinimumTLSVersion: defsecTypes.String("TLS_1_0", defsecTypes.NewTestMetadata()),
    50  				},
    51  			},
    52  		},
    53  	}
    54  
    55  	for _, test := range tests {
    56  		t.Run(test.name, func(t *testing.T) {
    57  			modules := tftestutil.CreateModulesFromSource(t, test.terraform, ".tf")
    58  			adapted := adaptSSLPolicies(modules)
    59  			testutil.AssertDefsecEqual(t, test.expected, adapted)
    60  		})
    61  	}
    62  }