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 }