Files
trivy/pkg/dependency/parser/utils/utils_test.go
Teppei Fukuda 3eecfc6b6e refactor: unify Library and Package structs (#6633)
Signed-off-by: knqyf263 <knqyf263@gmail.com>
Co-authored-by: DmitriyLewen <91113035+DmitriyLewen@users.noreply.github.com>
Co-authored-by: DmitriyLewen <dmitriy.lewen@smartforce.io>
2024-05-07 12:25:52 +00:00

118 lines
2.0 KiB
Go

package utils
import (
ftypes "github.com/aquasecurity/trivy/pkg/fanal/types"
"github.com/stretchr/testify/require"
"testing"
)
func TestUniqueLibraries(t *testing.T) {
tests := []struct {
name string
pkgs []ftypes.Package
wantPkgs []ftypes.Package
}{
{
name: "happy path merge locations",
pkgs: []ftypes.Package{
{
ID: "asn1@0.2.6",
Name: "asn1",
Version: "0.2.6",
Locations: []ftypes.Location{
{
StartLine: 10,
EndLine: 14,
},
},
},
{
ID: "asn1@0.2.6",
Name: "asn1",
Version: "0.2.6",
Locations: []ftypes.Location{
{
StartLine: 24,
EndLine: 30,
},
},
},
},
wantPkgs: []ftypes.Package{
{
ID: "asn1@0.2.6",
Name: "asn1",
Version: "0.2.6",
Locations: []ftypes.Location{
{
StartLine: 10,
EndLine: 14,
},
{
StartLine: 24,
EndLine: 30,
},
},
},
},
},
{
name: "happy path Dev and Root deps",
pkgs: []ftypes.Package{
{
ID: "asn1@0.2.6",
Name: "asn1",
Version: "0.2.6",
Dev: true,
},
{
ID: "asn1@0.2.6",
Name: "asn1",
Version: "0.2.6",
Dev: false,
},
},
wantPkgs: []ftypes.Package{
{
ID: "asn1@0.2.6",
Name: "asn1",
Version: "0.2.6",
Dev: false,
},
},
},
{
name: "happy path Root and Dev deps",
pkgs: []ftypes.Package{
{
ID: "asn1@0.2.6",
Name: "asn1",
Version: "0.2.6",
Dev: false,
},
{
ID: "asn1@0.2.6",
Name: "asn1",
Version: "0.2.6",
Dev: true,
},
},
wantPkgs: []ftypes.Package{
{
ID: "asn1@0.2.6",
Name: "asn1",
Version: "0.2.6",
Dev: false,
},
},
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
gotPkgs := UniquePackages(tt.pkgs)
require.Equal(t, tt.wantPkgs, gotPkgs)
})
}
}