@@ -285,19 +285,52 @@ func TestFilterUniqueAndConvertToFilesExcludePatterns(t *testing.T) {
285285 name string
286286 excludePatterns []string
287287 expectedOutput []string
288+ extraEnvVars map [string ]string
288289 }{
289290 {
291+ name : "excludePatterns_emptyPatterns" ,
290292 excludePatterns : []string {},
291293 expectedOutput : []string (nil ),
292294 },
293295 {
296+ name : "excludePatterns_defaultBehaviour" ,
297+ excludePatterns : []string {"*.git*" , "*node_modules*" , "*target*" , "*venv*" , "*test*" },
298+ expectedOutput : []string {"**/*.git*/**" , "**/*node_modules*/**" , "**/*target*/**" , "**/*test*/**" , "**/*venv*/**" },
299+ },
300+ {
301+ name : "excludePatterns_FolderEnvVarIsFalse" ,
302+ extraEnvVars : map [string ]string {
303+ "JF_EXCLUDE_FOLDERS_ONLY" : "false" ,
304+ },
294305 excludePatterns : []string {"*.git*" , "*node_modules*" , "*target*" , "*venv*" , "*test*" },
295306 expectedOutput : []string {"**/*.git*/**" , "**/*node_modules*/**" , "**/*target*/**" , "**/*test*/**" , "**/*venv*/**" , "*.git*" , "*node_modules*" , "*target*" , "*test*" , "*venv*" },
296307 },
308+ {
309+ name : "excludePatterns_FolderEnvVarExistsAndEmpty" ,
310+ extraEnvVars : map [string ]string {
311+ "JF_EXCLUDE_FOLDERS_ONLY" : "" ,
312+ },
313+ excludePatterns : []string {"*.git*" , "*node_modules*" , "*target*" , "*venv*" , "*test*" },
314+ expectedOutput : []string {"**/*.git*/**" , "**/*node_modules*/**" , "**/*target*/**" , "**/*test*/**" , "**/*venv*/**" },
315+ },
297316 }
298317
318+ var filteredExcludePatterns []string
299319 for _ , test := range tests {
300- filteredExcludePatterns := filterUniqueAndConvertToFilesExcludePatterns (test .excludePatterns )
320+ if len (test .extraEnvVars ) > 0 {
321+ for env , envValue := range test .extraEnvVars {
322+ err := os .Setenv (env , envValue )
323+ assert .NoError (t , err )
324+
325+ filteredExcludePatterns = filterUniqueAndConvertToFilesExcludePatterns (test .excludePatterns )
326+
327+ err = os .Unsetenv ("JF_EXCLUDE_FOLDERS_ONLY" )
328+ assert .NoError (t , err )
329+ }
330+ } else {
331+ filteredExcludePatterns = filterUniqueAndConvertToFilesExcludePatterns (test .excludePatterns )
332+ }
333+
301334 // Sort is needed since we create the response slice from a Set (unordered)
302335 slices .Sort (filteredExcludePatterns )
303336 assert .EqualValues (t , test .expectedOutput , filteredExcludePatterns )
0 commit comments