github.com/khulnasoft-lab/defsec@v1.0.5-0.20230827010352-5e9f46893d95/internal/adapters/terraform/aws/efs/adapt_test.go (about) 1 package efs 2 3 import ( 4 "testing" 5 6 defsecTypes "github.com/khulnasoft-lab/defsec/pkg/types" 7 8 "github.com/khulnasoft-lab/defsec/pkg/providers/aws/efs" 9 10 "github.com/khulnasoft-lab/defsec/internal/adapters/terraform/tftestutil" 11 12 "github.com/khulnasoft-lab/defsec/test/testutil" 13 "github.com/stretchr/testify/assert" 14 "github.com/stretchr/testify/require" 15 ) 16 17 func Test_adaptFileSystem(t *testing.T) { 18 tests := []struct { 19 name string 20 terraform string 21 expected efs.FileSystem 22 }{ 23 { 24 name: "configured", 25 terraform: ` 26 resource "aws_efs_file_system" "example" { 27 name = "bar" 28 encrypted = true 29 kms_key_id = "my_kms_key" 30 } 31 `, 32 expected: efs.FileSystem{ 33 Metadata: defsecTypes.NewTestMetadata(), 34 Encrypted: defsecTypes.Bool(true, defsecTypes.NewTestMetadata()), 35 }, 36 }, 37 { 38 name: "defaults", 39 terraform: ` 40 resource "aws_efs_file_system" "example" { 41 } 42 `, 43 expected: efs.FileSystem{ 44 Metadata: defsecTypes.NewTestMetadata(), 45 Encrypted: defsecTypes.Bool(false, defsecTypes.NewTestMetadata()), 46 }, 47 }, 48 } 49 50 for _, test := range tests { 51 t.Run(test.name, func(t *testing.T) { 52 modules := tftestutil.CreateModulesFromSource(t, test.terraform, ".tf") 53 adapted := adaptFileSystem(modules.GetBlocks()[0]) 54 testutil.AssertDefsecEqual(t, test.expected, adapted) 55 }) 56 } 57 } 58 59 func TestLines(t *testing.T) { 60 src := ` 61 resource "aws_efs_file_system" "example" { 62 name = "bar" 63 encrypted = true 64 kms_key_id = "my_kms_key" 65 } 66 ` 67 modules := tftestutil.CreateModulesFromSource(t, src, ".tf") 68 adapted := Adapt(modules) 69 70 require.Len(t, adapted.FileSystems, 1) 71 fileSystem := adapted.FileSystems[0] 72 73 assert.Equal(t, 2, fileSystem.Metadata.Range().GetStartLine()) 74 assert.Equal(t, 6, fileSystem.Metadata.Range().GetEndLine()) 75 76 assert.Equal(t, 4, fileSystem.Encrypted.GetMetadata().Range().GetStartLine()) 77 assert.Equal(t, 4, fileSystem.Encrypted.GetMetadata().Range().GetEndLine()) 78 }