github.com/khulnasoft-lab/defsec@v1.0.5-0.20230827010352-5e9f46893d95/pkg/scanners/terraform/parser/load_vars_test.go (about) 1 package parser 2 3 import ( 4 "testing" 5 6 "github.com/khulnasoft-lab/defsec/test/testutil" 7 8 "github.com/zclconf/go-cty/cty" 9 10 "github.com/stretchr/testify/assert" 11 "github.com/stretchr/testify/require" 12 ) 13 14 func Test_TFVarsFile(t *testing.T) { 15 t.Run("tfvars file", func(t *testing.T) { 16 fs := testutil.CreateFS(t, map[string]string{ 17 "test.tfvars": `instance_type = "t2.large"`, 18 }) 19 20 vars, err := loadTFVars(fs, []string{"test.tfvars"}) 21 require.NoError(t, err) 22 assert.Equal(t, "t2.large", vars["instance_type"].AsString()) 23 }) 24 25 t.Run("tfvars json file", func(t *testing.T) { 26 fs := testutil.CreateFS(t, map[string]string{ 27 "test.tfvars.json": `{ 28 "variable": { 29 "foo": { 30 "default": "bar" 31 }, 32 "baz": "qux" 33 }, 34 "foo2": true, 35 "foo3": 3 36 }`, 37 }) 38 39 vars, err := loadTFVars(fs, []string{"test.tfvars.json"}) 40 require.NoError(t, err) 41 assert.Equal(t, "bar", vars["variable"].GetAttr("foo").GetAttr("default").AsString()) 42 assert.Equal(t, "qux", vars["variable"].GetAttr("baz").AsString()) 43 assert.Equal(t, true, vars["foo2"].True()) 44 assert.Equal(t, true, vars["foo3"].Equals(cty.NumberIntVal(3)).True()) 45 }) 46 }