Skip to content

Commit 84bddd8

Browse files
committed
Add integration tests
1 parent e17f588 commit 84bddd8

File tree

2 files changed

+108
-8
lines changed

2 files changed

+108
-8
lines changed

internal/commands/scan.go

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -90,10 +90,10 @@ const (
9090
configPresetName = "presetName"
9191
configEngineVerbose = "engineVerbose"
9292
configLanguageMode = "languageMode"
93-
configContainersFilesFilterKey = "filesFilter"
94-
configContainersImagesFilterKey = "imagesFilter"
95-
configContainersPackagesFilterKey = "packagesFilter"
96-
configContainersNonFinalStagesFilterKey = "nonFinalStagesFilter"
93+
ConfigContainersFilesFilterKey = "filesFilter"
94+
ConfigContainersImagesFilterKey = "imagesFilter"
95+
ConfigContainersPackagesFilterKey = "packagesFilter"
96+
ConfigContainersNonFinalStagesFilterKey = "nonFinalStagesFilter"
9797
resultsMapValue = "value"
9898
resultsMapType = "type"
9999
trueString = "true"
@@ -981,19 +981,19 @@ func initializeContainersConfigWithResubmitValues(resubmitConfig []wrappers.Conf
981981
if config.Type != commonParams.ContainersType {
982982
continue
983983
}
984-
resubmitFilesFilter := config.Value[configContainersFilesFilterKey]
984+
resubmitFilesFilter := config.Value[ConfigContainersFilesFilterKey]
985985
if resubmitFilesFilter != nil && resubmitFilesFilter != "" {
986986
containerConfig.FilesFilter = resubmitFilesFilter.(string)
987987
}
988-
resubmitPackagesFilter := config.Value[configContainersPackagesFilterKey]
988+
resubmitPackagesFilter := config.Value[ConfigContainersPackagesFilterKey]
989989
if resubmitPackagesFilter != nil && resubmitPackagesFilter != "" {
990990
containerConfig.PackagesFilter = resubmitPackagesFilter.(string)
991991
}
992-
resubmitNonFinalStagesFilter := config.Value[configContainersNonFinalStagesFilterKey]
992+
resubmitNonFinalStagesFilter := config.Value[ConfigContainersNonFinalStagesFilterKey]
993993
if resubmitNonFinalStagesFilter != nil && resubmitNonFinalStagesFilter != "" {
994994
containerConfig.NonFinalStagesFilter = resubmitNonFinalStagesFilter.(string)
995995
}
996-
resubmitImagesFilter := config.Value[configContainersImagesFilterKey]
996+
resubmitImagesFilter := config.Value[ConfigContainersImagesFilterKey]
997997
if resubmitImagesFilter != nil && resubmitImagesFilter != "" {
998998
containerConfig.ImagesFilter = resubmitImagesFilter.(string)
999999
}

test/integration/scan_test.go

Lines changed: 100 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2035,3 +2035,103 @@ func TestCreateScanWithResubmitFlag_ProjectNotExist_ScanCreatedSuccessfullyWithD
20352035
err, _ := executeCommand(t, args...)
20362036
assert.NilError(t, err)
20372037
}
2038+
func TestScanCreate_WithContainerFilterFlags_CreatingScanSuccessfully(t *testing.T) {
2039+
bindKeysToEnvAndDefault(t)
2040+
var createdScan wrappers.ScanResponseModel
2041+
var createdScanConfig wrappers.Config
2042+
scansPath := viper.GetString(params.ScansPathKey)
2043+
scanWrapper := wrappers.NewHTTPScansWrapper(scansPath)
2044+
2045+
args := []string{
2046+
"scan", "create",
2047+
flag(params.ProjectName), GenerateRandomProjectNameForScan(),
2048+
flag(params.SourcesFlag), ".",
2049+
flag(params.ScanTypes), params.ContainersTypeFlag,
2050+
flag(params.ContainersFileFolderFilterFlag), "!*.log",
2051+
flag(params.ContainersExcludeNonFinalStagesFlag),
2052+
flag(params.ContainersImageTagFilterFlag), "*dev",
2053+
flag(params.ContainersPackageFilterFlag), "^internal-.*",
2054+
flag(params.BranchFlag), "dummy_branch",
2055+
flag(params.ScanInfoFormatFlag), printer.FormatJSON,
2056+
flag(params.AsyncFlag),
2057+
}
2058+
scanID, projectID := executeCreateScan(t, args)
2059+
2060+
mapParams := make(map[string]string)
2061+
mapParams["project-id"] = projectID
2062+
allScansModel, _, _ := scanWrapper.Get(mapParams)
2063+
2064+
createdScan = allScansModel.Scans[0]
2065+
2066+
assert.Assert(t, createdScan.ID == scanID, "Scan ID should be equal")
2067+
assert.Equal(t, len(createdScan.Metadata.Configs), 1, "Scan should have only containers config")
2068+
2069+
createdScanConfig = createdScan.Metadata.Configs[0]
2070+
2071+
assert.Equal(t, createdScanConfig.Type, params.ContainersType, "Scan type should be equal")
2072+
assert.Equal(t, createdScanConfig.Value[commands.ConfigContainersFilesFilterKey], "!*.log", "File/Folder filter should be equal")
2073+
assert.Equal(t, createdScanConfig.Value[commands.ConfigContainersNonFinalStagesFilterKey], "true", "Exclude non final stages should be equal")
2074+
assert.Equal(t, createdScanConfig.Value[commands.ConfigContainersImagesFilterKey], "*dev", "Image tag filter should be equal")
2075+
assert.Equal(t, createdScanConfig.Value[commands.ConfigContainersPackagesFilterKey], "^internal-.*", "Package filter should be equal")
2076+
2077+
}
2078+
2079+
func TestScanCreate_WithContainerFilterFlagsAndResubmitFlag_CreatingScanWithLatestScanConfigurationSuccessfully(t *testing.T) {
2080+
bindKeysToEnvAndDefault(t)
2081+
2082+
var createdScan wrappers.ScanResponseModel
2083+
var createdScanConfig wrappers.Config
2084+
2085+
scansPath := viper.GetString(params.ScansPathKey)
2086+
scanWrapper := wrappers.NewHTTPScansWrapper(scansPath)
2087+
2088+
projectName := GenerateRandomProjectNameForScan()
2089+
2090+
args := []string{
2091+
"scan", "create",
2092+
flag(params.ProjectName), projectName,
2093+
flag(params.SourcesFlag), ".",
2094+
flag(params.ScanTypes), params.ContainersTypeFlag,
2095+
flag(params.ContainersFileFolderFilterFlag), "!*.log",
2096+
flag(params.ContainersImageTagFilterFlag), "*dev",
2097+
flag(params.ContainersPackageFilterFlag), "^internal-.*",
2098+
flag(params.BranchFlag), "dummy_branch",
2099+
flag(params.ScanInfoFormatFlag), printer.FormatJSON,
2100+
flag(params.AsyncFlag),
2101+
}
2102+
2103+
_, projectID := executeCreateScan(t, args)
2104+
2105+
args = []string{
2106+
"scan", "create",
2107+
flag(params.ProjectName), projectName,
2108+
flag(params.SourcesFlag), ".",
2109+
flag(params.ScanTypes), params.ContainersTypeFlag,
2110+
flag(params.ContainersFileFolderFilterFlag), "!dockerfile",
2111+
flag(params.BranchFlag), "dummy_branch",
2112+
flag(params.ScanInfoFormatFlag), printer.FormatJSON,
2113+
flag(params.AsyncFlag),
2114+
flag(params.ScanResubmit),
2115+
}
2116+
2117+
resubmitScanID, resubmitProjectID := executeCreateScan(t, args)
2118+
2119+
assert.Equal(t, projectID, resubmitProjectID, "Project ID should be equal")
2120+
2121+
mapParams := make(map[string]string)
2122+
mapParams["project-id"] = resubmitProjectID
2123+
allScansModel, _, _ := scanWrapper.Get(mapParams)
2124+
2125+
createdScan = allScansModel.Scans[0]
2126+
2127+
assert.Assert(t, createdScan.ID == resubmitScanID, "Scan ID should be equal")
2128+
assert.Equal(t, len(createdScan.Metadata.Configs), 1, "Scan should have only containers config")
2129+
2130+
createdScanConfig = createdScan.Metadata.Configs[0]
2131+
2132+
assert.Equal(t, createdScanConfig.Type, params.ContainersType, "Scan type should be equal")
2133+
assert.Equal(t, createdScanConfig.Value[commands.ConfigContainersFilesFilterKey], "!dockerfile", "File/Folder filter should be equal")
2134+
assert.Equal(t, createdScanConfig.Value[commands.ConfigContainersNonFinalStagesFilterKey], nil, "Exclude non final stages should be equal")
2135+
assert.Equal(t, createdScanConfig.Value[commands.ConfigContainersImagesFilterKey], "*dev", "Image tag filter should be equal")
2136+
assert.Equal(t, createdScanConfig.Value[commands.ConfigContainersPackagesFilterKey], "^internal-.*", "Package filter should be equal")
2137+
}

0 commit comments

Comments
 (0)