From bbfb7c33a4edf0613277ee861bdad3dee307d725 Mon Sep 17 00:00:00 2001 From: attiasas Date: Tue, 24 Sep 2024 09:24:37 +0300 Subject: [PATCH] fix tests --- commands/audit/audit.go | 3 --- commands/scan/scan.go | 5 ----- jas/analyzermanager.go | 1 + jas/runner/jasrunner.go | 4 ++++ jas/runner/jasrunner_test.go | 10 ++++++---- 5 files changed, 11 insertions(+), 12 deletions(-) diff --git a/commands/audit/audit.go b/commands/audit/audit.go index d35599b0..99d5c77d 100644 --- a/commands/audit/audit.go +++ b/commands/audit/audit.go @@ -272,9 +272,6 @@ func downloadAnalyzerManagerAndRunScanners(auditParallelRunner *utils.SecurityPa if err = jas.DownloadAnalyzerManagerIfNeeded(threadId); err != nil { return fmt.Errorf("%s failed to download analyzer manager: %s", clientutils.GetLogMsgPrefix(threadId, false), err.Error()) } - if scanner.AnalyzerManager.AnalyzerManagerFullPath, err = jas.GetAnalyzerManagerExecutable(); err != nil { - return fmt.Errorf("%s failed to get analyzer manager executable: %s", clientutils.GetLogMsgPrefix(threadId, false), err.Error()) - } if err = runner.AddJasScannersTasks(auditParallelRunner, scanResults, auditParams.DirectDependencies(), auditParams.thirdPartyApplicabilityScan, scanner, applicability.ApplicabilityScannerType, secrets.SecretsScannerType, auditParallelRunner.AddErrorToChan, auditParams.ScansToPerform(), auditParams.configProfile, auditParams.scanResultsOutputDir); err != nil { return fmt.Errorf("%s failed to run JAS scanners: %s", clientutils.GetLogMsgPrefix(threadId, false), err.Error()) } diff --git a/commands/scan/scan.go b/commands/scan/scan.go index 7e31254b..ac4af6ab 100644 --- a/commands/scan/scan.go +++ b/commands/scan/scan.go @@ -459,11 +459,6 @@ func (scanCmd *ScanCommand) createIndexerHandlerFunc(file *spec.File, entitledFo log.Debug(fmt.Sprintf("Jas scanner was not created for %s, skipping Jas scans", filePath)) return nil } - if scanner.AnalyzerManager.AnalyzerManagerFullPath, err = jas.GetAnalyzerManagerExecutable(); err != nil { - log.Error(fmt.Sprintf("failed to get analyzer manager executable: %s", err.Error())) - indexedFileErrors[threadId] = append(indexedFileErrors[threadId], formats.SimpleJsonError{FilePath: filePath, ErrorMessage: err.Error()}) - return nil - } err = runner.AddJasScannersTasks(jasFileProducerConsumer, &scanResults, &depsList, false, scanner, applicability.ApplicabilityDockerScanScanType, secrets.SecretsScannerDockerScanType, jasErrHandlerFunc, utils.GetAllSupportedScans(), nil, "") if err != nil { log.Error(fmt.Sprintf("scanning '%s' failed with error: %s", graph.Id, err.Error())) diff --git a/jas/analyzermanager.go b/jas/analyzermanager.go index 46074965..22a47be4 100644 --- a/jas/analyzermanager.go +++ b/jas/analyzermanager.go @@ -123,6 +123,7 @@ func GetAnalyzerManagerExecutable() (analyzerManagerPath string, err error) { return } if !exists { + log.Debug(fmt.Sprintf("The analyzer manager executable was not found at %s", analyzerManagerPath)) err = errors.New("unable to locate the analyzer manager package. Advanced security scans cannot be performed without this package") } return analyzerManagerPath, err diff --git a/jas/runner/jasrunner.go b/jas/runner/jasrunner.go index 3daa1ab4..d113b878 100644 --- a/jas/runner/jasrunner.go +++ b/jas/runner/jasrunner.go @@ -21,6 +21,10 @@ import ( func AddJasScannersTasks(securityParallelRunner *utils.SecurityParallelRunner, scanResults *utils.Results, directDependencies *[]string, thirdPartyApplicabilityScan bool, scanner *jas.JasScanner, scanType applicability.ApplicabilityScanType, secretsScanType secrets.SecretsScanType, errHandlerFunc func(error), scansToPreform []utils.SubScanType, configProfile *services.ConfigProfile, scansOutputDir string) (err error) { + // Set the analyzer manager executable path. + if scanner.AnalyzerManager.AnalyzerManagerFullPath, err = jas.GetAnalyzerManagerExecutable(); err != nil { + return + } // For docker scan we support only secrets and contextual scans. runAllScanners := false if scanType == applicability.ApplicabilityScannerType || secretsScanType == secrets.SecretsScannerType { diff --git a/jas/runner/jasrunner_test.go b/jas/runner/jasrunner_test.go index 725bc6f9..e5e9f03e 100644 --- a/jas/runner/jasrunner_test.go +++ b/jas/runner/jasrunner_test.go @@ -16,7 +16,7 @@ import ( "github.com/stretchr/testify/assert" ) -func TestGetExtendedScanResults_AnalyzerManagerDoesntExist(t *testing.T) { +func TestJasRunner_AnalyzerManagerNotExist(t *testing.T) { tmpDir, err := fileutils.CreateTempDir() assert.NoError(t, err) defer func() { @@ -36,17 +36,19 @@ func TestGetExtendedScanResults_AnalyzerManagerDoesntExist(t *testing.T) { assert.ErrorContains(t, err, "unable to locate the analyzer manager package. Advanced security scans cannot be performed without this package") } -func TestGetExtendedScanResults_ServerNotValid(t *testing.T) { +func TestJasRunner(t *testing.T) { securityParallelRunnerForTest := utils.CreateSecurityParallelRunner(cliutils.Threads) scanResults := &utils.Results{ScaResults: []*utils.ScaScanResult{{Technology: techutils.Pip, XrayResults: jas.FakeBasicXrayResults}}, ExtendedScanResults: &utils.ExtendedScanResults{}} - jasScanner, err := jas.CreateJasScanner(nil, &jas.FakeServerDetails, jas.GetAnalyzerManagerXscEnvVars("", false, scanResults.GetScaScannedTechnologies()...)) + jfrogAppsConfigForTest, err := jas.CreateJFrogAppsConfig(nil) + assert.NoError(t, err) + jasScanner, err := jas.CreateJasScanner(jfrogAppsConfigForTest, &jas.FakeServerDetails, jas.GetAnalyzerManagerXscEnvVars("", false, scanResults.GetScaScannedTechnologies()...)) assert.NoError(t, err) err = AddJasScannersTasks(securityParallelRunnerForTest, scanResults, &[]string{"issueId_1_direct_dependency", "issueId_2_direct_dependency"}, false, jasScanner, applicability.ApplicabilityScannerType, secrets.SecretsScannerType, securityParallelRunnerForTest.AddErrorToChan, utils.GetAllSupportedScans(), nil, "") assert.NoError(t, err) } -func TestGetExtendedScanResults_AnalyzerManagerReturnsError(t *testing.T) { +func TestJasRunner_AnalyzerManagerReturnsError(t *testing.T) { assert.NoError(t, jas.DownloadAnalyzerManagerIfNeeded(0)) jfrogAppsConfigForTest, _ := jas.CreateJFrogAppsConfig(nil)