package main import ( "os" "path" "path/filepath" "regexp" "testing" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" ) func TestVulnerabilityDataStream(t *testing.T) { if os.Getenv("NETWORK_TEST") == "" { t.Skip("set environment variable NETWORK_TEST=1 to run") } runAppCheckErr(t, []string{"vulnerability-data-stream"}, "No directory provided") vulnPath := t.TempDir() expected := `[-] Downloading CPE database... Done [-] Downloading CVE data streams... Done [+] Data streams successfully downloaded! ` assert.Equal(t, expected, runAppForTest(t, []string{"vulnerability-data-stream", "--dir", vulnPath}), ) assert.FileExists(t, path.Join(vulnPath, "cpe.sqlite")) var files []string require.NoError(t, filepath.Walk(vulnPath, func(path string, info os.FileInfo, err error) error { if match, err := regexp.MatchString("nvdcve.*\\.gz$", path); !match || err != nil { return nil } files = append(files, path) return nil })) assert.Greater(t, len(files), 0) }