Files
syft/syft/format/internal/spdxutil/helpers/download_location_test.go
T
2024-01-26 12:16:26 -05:00

74 lines
1.3 KiB
Go

package helpers
import (
"testing"
"github.com/stretchr/testify/assert"
"github.com/anchore/syft/syft/pkg"
)
func Test_DownloadLocation(t *testing.T) {
tests := []struct {
name string
input pkg.Package
expected string
}{
{
name: "no metadata",
input: pkg.Package{},
expected: NOASSERTION,
},
{
name: "from apk",
input: pkg.Package{
Metadata: pkg.ApkDBEntry{
URL: "http://a-place.gov",
},
},
expected: "http://a-place.gov",
},
{
name: "from npm",
input: pkg.Package{
Metadata: pkg.NpmPackage{
URL: "http://a-place.gov",
},
},
expected: "http://a-place.gov",
},
{
name: "empty",
input: pkg.Package{
Metadata: pkg.NpmPackage{
URL: "",
},
},
expected: NONE,
},
{
name: "from npm package-lock should include resolved",
input: pkg.Package{
Metadata: pkg.NpmPackageLockEntry{
Resolved: "http://package-lock.test",
},
},
expected: "http://package-lock.test",
},
{
name: "from npm package-lock empty should be NONE",
input: pkg.Package{
Metadata: pkg.NpmPackageLockEntry{
Resolved: "",
},
},
expected: NONE,
},
}
for _, test := range tests {
t.Run(test.name, func(t *testing.T) {
assert.Equal(t, test.expected, DownloadLocation(test.input))
})
}
}