github.com/aquasecurity/trivy-iac@v0.8.1-0.20240127024015-3d8e412cf0ab/pkg/scanners/terraformplan/test/scanner_test.go (about)

     1  package terraformplan
     2  
     3  import (
     4  	"os"
     5  	"testing"
     6  	"testing/fstest"
     7  
     8  	"github.com/aquasecurity/defsec/pkg/scan"
     9  	"github.com/stretchr/testify/assert"
    10  	"github.com/stretchr/testify/require"
    11  
    12  	"github.com/aquasecurity/defsec/pkg/scanners/options"
    13  	"github.com/aquasecurity/trivy-iac/pkg/scanners/terraformplan"
    14  )
    15  
    16  func Test_Scanning_Plan(t *testing.T) {
    17  	scanner := terraformplan.New(
    18  		options.ScannerWithEmbeddedPolicies(true),
    19  		options.ScannerWithEmbeddedLibraries(true),
    20  	)
    21  	b, _ := os.ReadFile("testdata/plan.json")
    22  	testFS := fstest.MapFS{
    23  		"testdata/plan.json": {Data: b},
    24  	}
    25  
    26  	results, err := scanner.ScanFile("testdata/plan.json", testFS)
    27  	require.NoError(t, err)
    28  	require.NotNil(t, results)
    29  
    30  	var failedResults scan.Results
    31  	for _, r := range results {
    32  		if r.Status() == scan.StatusFailed {
    33  			failedResults = append(failedResults, r)
    34  		}
    35  	}
    36  	assert.Len(t, results, 15)
    37  	assert.Len(t, failedResults, 9)
    38  
    39  }