mirror of
https://github.com/safedep/pmg.git
synced 2026-08-03 07:24:09 +02:00
* fix: Show error messages on fatal failures #32 * test: Add E2E test * test: fix E2E scripts * test: fix E2E scripts * fix: Race condition in concurrent analyzer * fix: update formatting to ensure docs URL is clickable Signed-off-by: Sahil Bansal <bansalsahil315@gmail.com> * fix: E2E test --------- Signed-off-by: Sahil Bansal <bansalsahil315@gmail.com> Co-authored-by: Sahil Bansal <bansalsahil315@gmail.com>
This commit is contained in:
co-authored by
Sahil Bansal
parent
b85f77cfbc
commit
4031219375
@@ -0,0 +1,47 @@
|
||||
package guard
|
||||
|
||||
import (
|
||||
"context"
|
||||
"testing"
|
||||
|
||||
packagev1 "buf.build/gen/go/safedep/api/protocolbuffers/go/safedep/messages/package/v1"
|
||||
"github.com/safedep/pmg/analyzer"
|
||||
"github.com/stretchr/testify/assert"
|
||||
)
|
||||
|
||||
func TestGuardConcurrentlyAnalyzePackagesMalwareQueryService(t *testing.T) {
|
||||
mq, err := analyzer.NewMalysisQueryAnalyzer(analyzer.MalysisQueryAnalyzerConfig{})
|
||||
if err != nil {
|
||||
t.Fatalf("failed to create mq: %v", err)
|
||||
}
|
||||
|
||||
pg, err := NewPackageManagerGuard(DefaultPackageManagerGuardConfig(), nil, nil,
|
||||
[]analyzer.PackageVersionAnalyzer{mq}, PackageManagerGuardInteraction{})
|
||||
if err != nil {
|
||||
t.Fatalf("failed to create pg: %v", err)
|
||||
}
|
||||
|
||||
t.Run("should resolve a single known malicious package version", func(t *testing.T) {
|
||||
r, err := pg.concurrentAnalyzePackages(context.Background(), []*packagev1.PackageVersion{
|
||||
{
|
||||
Package: &packagev1.Package{
|
||||
Name: "nyc-config",
|
||||
Ecosystem: packagev1.Ecosystem_ECOSYSTEM_NPM,
|
||||
},
|
||||
Version: "10.0.0",
|
||||
},
|
||||
})
|
||||
if err != nil {
|
||||
t.Fatalf("failed to analyze packages: %v", err)
|
||||
}
|
||||
|
||||
assert.Equal(t, 1, len(r))
|
||||
assert.Equal(t, "nyc-config", r[0].PackageVersion.GetPackage().GetName())
|
||||
assert.Equal(t, "10.0.0", r[0].PackageVersion.GetVersion())
|
||||
assert.Equal(t, packagev1.Ecosystem_ECOSYSTEM_NPM, r[0].PackageVersion.GetPackage().GetEcosystem())
|
||||
assert.NotEmpty(t, r[0].ReferenceURL)
|
||||
assert.NotEmpty(t, r[0].Summary)
|
||||
assert.NotNil(t, r[0].Data)
|
||||
assert.Equal(t, analyzer.ActionBlock, r[0].Action)
|
||||
})
|
||||
}
|
||||
Reference in New Issue
Block a user