diff --git a/pkg/assembler/backends/ent/backend/hasMetadata.go b/pkg/assembler/backends/ent/backend/hasMetadata.go index f9363c9013..dc7860086f 100644 --- a/pkg/assembler/backends/ent/backend/hasMetadata.go +++ b/pkg/assembler/backends/ent/backend/hasMetadata.go @@ -236,7 +236,7 @@ func toModelHasMetadata(v *ent.HasMetadata) *model.HasMetadata { func hasMetadataInputPredicate(subject model.PackageSourceOrArtifactInput, pkgMatchType *model.MatchFlags, filter model.HasMetadataInputSpec) predicate.HasMetadata { var subjectSpec *model.PackageSourceOrArtifactSpec if subject.Package != nil { - if pkgMatchType != nil || pkgMatchType.Pkg == model.PkgMatchTypeAllVersions { + if pkgMatchType != nil && pkgMatchType.Pkg == model.PkgMatchTypeAllVersions { subject.Package.Version = nil } subjectSpec = &model.PackageSourceOrArtifactSpec{ diff --git a/pkg/assembler/backends/ent/backend/hasMetadata_test.go b/pkg/assembler/backends/ent/backend/hasMetadata_test.go index be284c7d81..c0c793c6cc 100644 --- a/pkg/assembler/backends/ent/backend/hasMetadata_test.go +++ b/pkg/assembler/backends/ent/backend/hasMetadata_test.go @@ -203,6 +203,43 @@ func (s *Suite) TestHasMetadata() { }, }, }, + { + Name: "Ingest same twice with version", + InPkg: []*model.PkgInputSpec{p2}, + Calls: []call{ + { + Sub: model.PackageSourceOrArtifactInput{ + Package: p2, + }, + Match: &model.MatchFlags{ + Pkg: model.PkgMatchTypeSpecificVersion, + }, + HM: &model.HasMetadataInputSpec{ + Justification: "test justification", + }, + }, + { + Sub: model.PackageSourceOrArtifactInput{ + Package: p2, + }, + Match: &model.MatchFlags{ + Pkg: model.PkgMatchTypeSpecificVersion, + }, + HM: &model.HasMetadataInputSpec{ + Justification: "test justification", + }, + }, + }, + Query: &model.HasMetadataSpec{ + Justification: ptrfrom.String("test justification"), + }, + ExpHM: []*model.HasMetadata{ + { + Subject: p2out, + Justification: "test justification", + }, + }, + }, { Name: "Ingest two different keys", InPkg: []*model.PkgInputSpec{p1},