github.com/khulnasoft-lab/defsec@v1.0.5-0.20230827010352-5e9f46893d95/internal/adapters/terraform/github/repositories/adapt_test.go (about) 1 package repositories 2 3 import ( 4 "testing" 5 6 "github.com/khulnasoft-lab/defsec/internal/adapters/terraform/tftestutil" 7 8 "github.com/stretchr/testify/assert" 9 "github.com/stretchr/testify/require" 10 ) 11 12 func Test_AdaptDefaults(t *testing.T) { 13 14 src := ` 15 resource "github_repository" "my-repo" { 16 17 } 18 ` 19 modules := tftestutil.CreateModulesFromSource(t, src, ".tf") 20 repositories := Adapt(modules) 21 require.Len(t, repositories, 1) 22 repo := repositories[0] 23 24 assert.True(t, repo.Public.IsTrue()) 25 } 26 27 func Test_Adapt_Private(t *testing.T) { 28 29 src := ` 30 resource "github_repository" "my-repo" { 31 private = true 32 } 33 ` 34 modules := tftestutil.CreateModulesFromSource(t, src, ".tf") 35 repositories := Adapt(modules) 36 require.Len(t, repositories, 1) 37 repo := repositories[0] 38 39 assert.False(t, repo.Public.IsTrue()) 40 assert.Equal(t, 3, repo.Public.GetMetadata().Range().GetStartLine()) 41 assert.Equal(t, 3, repo.Public.GetMetadata().Range().GetEndLine()) 42 } 43 44 func Test_Adapt_Public(t *testing.T) { 45 46 src := ` 47 resource "github_repository" "my-repo" { 48 private = false 49 } 50 ` 51 modules := tftestutil.CreateModulesFromSource(t, src, ".tf") 52 repositories := Adapt(modules) 53 require.Len(t, repositories, 1) 54 repo := repositories[0] 55 56 assert.True(t, repo.Public.IsTrue()) 57 assert.Equal(t, 3, repo.Public.GetMetadata().Range().GetStartLine()) 58 assert.Equal(t, 3, repo.Public.GetMetadata().Range().GetEndLine()) 59 } 60 61 func Test_Adapt_VisibilityOverride(t *testing.T) { 62 63 src := ` 64 resource "github_repository" "my-repo" { 65 private = true 66 visibility = "public" 67 } 68 ` 69 modules := tftestutil.CreateModulesFromSource(t, src, ".tf") 70 repositories := Adapt(modules) 71 require.Len(t, repositories, 1) 72 repo := repositories[0] 73 74 assert.True(t, repo.Public.IsTrue()) 75 assert.Equal(t, 4, repo.Public.GetMetadata().Range().GetStartLine()) 76 assert.Equal(t, 4, repo.Public.GetMetadata().Range().GetEndLine()) 77 } 78 79 func Test_Adapt_VulnerabilityAlertsEnabled(t *testing.T) { 80 81 src := ` 82 resource "github_repository" "my-repo" { 83 vulnerability_alerts = true 84 } 85 ` 86 modules := tftestutil.CreateModulesFromSource(t, src, ".tf") 87 repositories := Adapt(modules) 88 require.Len(t, repositories, 1) 89 repo := repositories[0] 90 91 assert.True(t, repo.VulnerabilityAlerts.IsTrue()) 92 assert.Equal(t, 3, repo.VulnerabilityAlerts.GetMetadata().Range().GetStartLine()) 93 assert.Equal(t, 3, repo.VulnerabilityAlerts.GetMetadata().Range().GetEndLine()) 94 } 95 96 func Test_Adapt_VulnerabilityAlertsDisabled(t *testing.T) { 97 98 src := ` 99 resource "github_repository" "my-repo" { 100 vulnerability_alerts = false 101 } 102 ` 103 modules := tftestutil.CreateModulesFromSource(t, src, ".tf") 104 repositories := Adapt(modules) 105 require.Len(t, repositories, 1) 106 repo := repositories[0] 107 108 assert.False(t, repo.VulnerabilityAlerts.IsTrue()) 109 assert.Equal(t, 3, repo.VulnerabilityAlerts.GetMetadata().Range().GetStartLine()) 110 assert.Equal(t, 3, repo.VulnerabilityAlerts.GetMetadata().Range().GetEndLine()) 111 }