github.com/khulnasoft-lab/defsec@v1.0.5-0.20230827010352-5e9f46893d95/internal/adapters/terraform/google/compute/metadata_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_adaptProjectMetadata(t *testing.T) { 15 tests := []struct { 16 name string 17 terraform string 18 expected compute.ProjectMetadata 19 }{ 20 { 21 name: "defined", 22 terraform: ` 23 resource "google_compute_project_metadata" "example" { 24 metadata = { 25 enable-oslogin = true 26 } 27 } 28 `, 29 expected: compute.ProjectMetadata{ 30 Metadata: defsecTypes.NewTestMetadata(), 31 EnableOSLogin: defsecTypes.Bool(true, defsecTypes.NewTestMetadata()), 32 }, 33 }, 34 { 35 name: "defaults", 36 terraform: ` 37 resource "google_compute_project_metadata" "example" { 38 metadata = { 39 } 40 } 41 `, 42 expected: compute.ProjectMetadata{ 43 Metadata: defsecTypes.NewTestMetadata(), 44 EnableOSLogin: defsecTypes.Bool(false, defsecTypes.NewTestMetadata()), 45 }, 46 }, 47 } 48 49 for _, test := range tests { 50 t.Run(test.name, func(t *testing.T) { 51 modules := tftestutil.CreateModulesFromSource(t, test.terraform, ".tf") 52 adapted := adaptProjectMetadata(modules) 53 testutil.AssertDefsecEqual(t, test.expected, adapted) 54 }) 55 } 56 }