From 1a921cf0da421c17eb6732eb86cb9bda559a62c9 Mon Sep 17 00:00:00 2001 From: David Wertenteil Date: Wed, 10 Apr 2024 15:34:30 +0300 Subject: [PATCH] fix MetadataType in artifacts Signed-off-by: David Wertenteil --- pkg/apis/softwarecomposition/syfttypes.go | 1 + .../softwarecomposition/syfttypes_test.go | 41 +++++++++++++++++++ .../softwarecomposition/v1beta1/syfttypes.go | 1 + 3 files changed, 43 insertions(+) create mode 100644 pkg/apis/softwarecomposition/syfttypes_test.go diff --git a/pkg/apis/softwarecomposition/syfttypes.go b/pkg/apis/softwarecomposition/syfttypes.go index 83d8cbbbf..3e2fb1df6 100644 --- a/pkg/apis/softwarecomposition/syfttypes.go +++ b/pkg/apis/softwarecomposition/syfttypes.go @@ -323,6 +323,7 @@ func unpackPkgMetadata(p *SyftPackage, unpacker packageMetadataUnpacker) error { ty = "rust-cargo-audit-entry" } } + p.MetadataType = ty typ := packagemetadata.ReflectTypeFromJSONName(ty) if typ == nil { diff --git a/pkg/apis/softwarecomposition/syfttypes_test.go b/pkg/apis/softwarecomposition/syfttypes_test.go new file mode 100644 index 000000000..e473332d2 --- /dev/null +++ b/pkg/apis/softwarecomposition/syfttypes_test.go @@ -0,0 +1,41 @@ +package softwarecomposition + +import ( + "testing" + + _ "embed" + + "github.com/stretchr/testify/assert" +) + +//go:embed testdata/artifact.json +var artifact []byte + +func TestUpdateSBOMSyft(t *testing.T) { + type args struct { + id string + metadataType string + } + tests := []struct { + name string + input []byte + args args + wantErr bool + }{ + { + name: "TestUpdateSBOMSyft", + input: artifact, + args: args{id: "8a49897e59f569c2", metadataType: "dpkg-db-entry"}, + wantErr: false, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + c := SyftPackage{} + err := c.UnmarshalJSON(tt.input) + assert.NoError(t, err) + assert.Equal(t, c.ID, tt.args.id) + assert.Equal(t, c.MetadataType, tt.args.metadataType) + }) + } +} diff --git a/pkg/apis/softwarecomposition/v1beta1/syfttypes.go b/pkg/apis/softwarecomposition/v1beta1/syfttypes.go index e0fcd46b0..61bc2ce60 100644 --- a/pkg/apis/softwarecomposition/v1beta1/syfttypes.go +++ b/pkg/apis/softwarecomposition/v1beta1/syfttypes.go @@ -323,6 +323,7 @@ func unpackPkgMetadata(p *SyftPackage, unpacker packageMetadataUnpacker) error { ty = "rust-cargo-audit-entry" } } + p.MetadataType = ty typ := packagemetadata.ReflectTypeFromJSONName(ty) if typ == nil {