Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ jobs:
PR_GITHUB_TOKEN: ${{ secrets.PERSONAL_ACCESS_TOKEN }}
PR_GITHUB_NAMESPACE: "checkmarx"
PR_GITHUB_REPO_NAME: "ast-cli"
PR_GITHUB_NUMBER: 43
PR_GITHUB_NUMBER: 983
PR_GITLAB_TOKEN : ${{ secrets.PR_GITLAB_TOKEN }}
PR_GITLAB_NAMESPACE: ${{ secrets.PR_GITLAB_NAMESPACE }}
PR_GITLAB_REPO_NAME: ${{ secrets.PR_GITLAB_REPO_NAME }}
Expand Down
6 changes: 5 additions & 1 deletion internal/commands/scan.go
Original file line number Diff line number Diff line change
Expand Up @@ -1086,6 +1086,7 @@ func compressFolder(sourceDir, filter, userIncludeFilter, scaResolver string) (s
if err != nil {
return "", errors.Wrapf(err, "Cannot source code temp file.")
}
defer outputFile.Close()
zipWriter := zip.NewWriter(outputFile)
err = addDirFiles(zipWriter, "", sourceDir, getExcludeFilters(filter), getIncludeFilters(userIncludeFilter))
if err != nil {
Expand Down Expand Up @@ -1462,6 +1463,9 @@ func uploadZip(uploadsWrapper wrappers.UploadsWrapper, zipFilePath string, unzip
var preSignedURL *string
preSignedURL, zipFilePathErr = uploadsWrapper.UploadFile(zipFilePath, featureFlagsWrapper)
if zipFilePathErr != nil {
if unzip || !userProvidedZip {
return "", zipFilePath, errors.Wrapf(zipFilePathErr, "%s: Failed to upload sources file\n", failedCreating)
}
return "", "", errors.Wrapf(zipFilePathErr, "%s: Failed to upload sources file\n", failedCreating)
}
if unzip || !userProvidedZip {
Expand Down Expand Up @@ -1616,6 +1620,7 @@ func runCreateScanCommand(
featureFlagsWrapper,
jwtWrapper,
)
defer cleanUpTempZip(zipFilePath)
if err != nil {
return errors.Errorf("%s", err)
}
Expand Down Expand Up @@ -1681,7 +1686,6 @@ func runCreateScanCommand(
}
}

defer cleanUpTempZip(zipFilePath)
// verify break build from policy
if policyResponseModel != nil && len(policyResponseModel.Policies) > 0 && policyResponseModel.BreakBuild {
logger.PrintIfVerbose("Breaking the build due to policy violation")
Expand Down
34 changes: 34 additions & 0 deletions internal/commands/scan_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -1353,3 +1353,37 @@ func TestResubmitConfig_ProjectDoesNotExist_ReturnedEmptyConfig(t *testing.T) {
assert.NilError(t, err)
assert.Equal(t, len(config), 0)
}

func TestUploadZip_whenUserProvideZip_shouldReturnEmptyZipFilePathInSuccessCase(t *testing.T) {
uploadWrapper := mock.UploadsMockWrapper{}
featureFlagsWrapper := &mock.FeatureFlagsMockWrapper{}
_, zipPath, err := uploadZip(&uploadWrapper, "test.zip", false, true, featureFlagsWrapper)
assert.NilError(t, err)
assert.Equal(t, zipPath, "")
}

func TestUploadZip_whenUserProvideZip_shouldReturnEmptyZipFilePathInFailureCase(t *testing.T) {
uploadWrapper := mock.UploadsMockWrapper{}
featureFlagsWrapper := &mock.FeatureFlagsMockWrapper{}
_, zipPath, err := uploadZip(&uploadWrapper, "failureCase.zip", false, true, featureFlagsWrapper)
assert.Assert(t, err != nil)
assert.Assert(t, strings.Contains(err.Error(), "error from UploadFile"), err.Error())
assert.Equal(t, zipPath, "")
}

func TestUploadZip_whenUserNotProvideZip_shouldReturnZipFilePathInSuccessCase(t *testing.T) {
uploadWrapper := mock.UploadsMockWrapper{}
featureFlagsWrapper := &mock.FeatureFlagsMockWrapper{}
_, zipPath, err := uploadZip(&uploadWrapper, "test.zip", false, false, featureFlagsWrapper)
assert.NilError(t, err)
assert.Equal(t, zipPath, "test.zip")
}

func TestUploadZip_whenUserNotProvideZip_shouldReturnZipFilePathInFailureCase(t *testing.T) {
uploadWrapper := mock.UploadsMockWrapper{}
featureFlagsWrapper := &mock.FeatureFlagsMockWrapper{}
_, zipPath, err := uploadZip(&uploadWrapper, "failureCase.zip", false, false, featureFlagsWrapper)
assert.Assert(t, err != nil)
assert.Assert(t, strings.Contains(err.Error(), "error from UploadFile"), err.Error())
assert.Equal(t, zipPath, "failureCase.zip")
}
6 changes: 5 additions & 1 deletion internal/wrappers/mock/uploads-mock.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,19 @@ package mock

import (
"fmt"
"github.com/pkg/errors"

"github.com/checkmarx/ast-cli/internal/wrappers"
)

type UploadsMockWrapper struct {
}

func (u *UploadsMockWrapper) UploadFile(_ string, featureFlagsWrapper wrappers.FeatureFlagsWrapper) (*string, error) {
func (u *UploadsMockWrapper) UploadFile(filePath string, featureFlagsWrapper wrappers.FeatureFlagsWrapper) (*string, error) {
fmt.Println("Called Create in UploadsMockWrapper")
if filePath == "failureCase.zip" {
return nil, errors.New("error from UploadFile")
}
url := "/path/to/nowhere"
return &url, nil
}
Loading