github.com/khulnasoft-lab/defsec@v1.0.5-0.20230827010352-5e9f46893d95/internal/adapters/terraform/azure/synapse/adapt_test.go (about) 1 package synapse 2 3 import ( 4 "testing" 5 6 defsecTypes "github.com/khulnasoft-lab/defsec/pkg/types" 7 8 "github.com/khulnasoft-lab/defsec/pkg/providers/azure/synapse" 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_adaptWorkspace(t *testing.T) { 18 tests := []struct { 19 name string 20 terraform string 21 expected synapse.Workspace 22 }{ 23 { 24 name: "enabled", 25 terraform: ` 26 resource "azurerm_synapse_workspace" "example" { 27 managed_virtual_network_enabled = true 28 } 29 `, 30 expected: synapse.Workspace{ 31 Metadata: defsecTypes.NewTestMetadata(), 32 EnableManagedVirtualNetwork: defsecTypes.Bool(true, defsecTypes.NewTestMetadata()), 33 }, 34 }, 35 { 36 name: "disabled", 37 terraform: ` 38 resource "azurerm_synapse_workspace" "example" { 39 managed_virtual_network_enabled = false 40 } 41 `, 42 expected: synapse.Workspace{ 43 Metadata: defsecTypes.NewTestMetadata(), 44 EnableManagedVirtualNetwork: defsecTypes.Bool(false, defsecTypes.NewTestMetadata()), 45 }, 46 }, 47 { 48 name: "default", 49 terraform: ` 50 resource "azurerm_synapse_workspace" "example" { 51 } 52 `, 53 expected: synapse.Workspace{ 54 Metadata: defsecTypes.NewTestMetadata(), 55 EnableManagedVirtualNetwork: defsecTypes.Bool(false, defsecTypes.NewTestMetadata()), 56 }, 57 }, 58 } 59 60 for _, test := range tests { 61 t.Run(test.name, func(t *testing.T) { 62 modules := tftestutil.CreateModulesFromSource(t, test.terraform, ".tf") 63 adapted := adaptWorkspace(modules.GetBlocks()[0]) 64 testutil.AssertDefsecEqual(t, test.expected, adapted) 65 }) 66 } 67 } 68 69 func TestLines(t *testing.T) { 70 src := ` 71 resource "azurerm_synapse_workspace" "example" { 72 managed_virtual_network_enabled = true 73 }` 74 75 modules := tftestutil.CreateModulesFromSource(t, src, ".tf") 76 adapted := Adapt(modules) 77 78 require.Len(t, adapted.Workspaces, 1) 79 workspace := adapted.Workspaces[0] 80 81 assert.Equal(t, 3, workspace.EnableManagedVirtualNetwork.GetMetadata().Range().GetStartLine()) 82 assert.Equal(t, 3, workspace.EnableManagedVirtualNetwork.GetMetadata().Range().GetEndLine()) 83 }