@@ -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