@@ -1023,6 +1023,58 @@ generate_projects:
10231023 assert .Equal (t , 3 , len (dg .Projects ))
10241024}
10251025
1026+ func TestDiggerGenerateProjectsTerragruntBlocksWithIncludeExcludePatterns (t * testing.T ) {
1027+ tempDir , teardown := setUp ()
1028+ defer teardown ()
1029+
1030+ diggerCfg := `
1031+ generate_projects:
1032+ blocks:
1033+ - block_name: test-terragrunt
1034+ terragrunt: true
1035+ root_dir: infrastructure
1036+ include_patterns: ["modules/**", "shared/**"]
1037+ exclude_patterns: ["modules/legacy/**"]
1038+ `
1039+ deleteFile := createFile (path .Join (tempDir , "digger.yml" ), diggerCfg )
1040+ defer deleteFile ()
1041+
1042+ dirsToCreate := []string {
1043+ "infrastructure/env1/app1" ,
1044+ "infrastructure/env1/app2" ,
1045+ "infrastructure/env2/app1" ,
1046+ }
1047+
1048+ for _ , dir := range dirsToCreate {
1049+ err := os .MkdirAll (path .Join (tempDir , dir ), os .ModePerm )
1050+ assert .NoError (t , err , "expected error to be nil" )
1051+ defer createFile (path .Join (tempDir , dir , "terragrunt.hcl" ), hclFile )()
1052+ }
1053+
1054+ dg , _ , _ , _ , err := LoadDiggerConfig (tempDir , true , nil , nil )
1055+ assert .NoError (t , err , "expected error to be nil" )
1056+ assert .NotNil (t , dg , "expected digger digger_config to be not nil" )
1057+
1058+ terragruntProjectsFound := 0
1059+ for _ , project := range dg .Projects {
1060+ if project .BlockName != "test-terragrunt" || ! project .Terragrunt {
1061+ continue
1062+ }
1063+ terragruntProjectsFound ++
1064+
1065+ assert .NotNil (t , project .IncludePatterns , "IncludePatterns should not be nil for project %s" , project .Name )
1066+ assert .Greater (t , len (project .IncludePatterns ), 0 , "IncludePatterns should have at least one pattern for project %s" , project .Name )
1067+ assert .Contains (t , project .IncludePatterns , "modules/**" )
1068+ assert .Contains (t , project .IncludePatterns , "shared/**" )
1069+
1070+ assert .NotNil (t , project .ExcludePatterns , "ExcludePatterns should not be nil for project %s" , project .Name )
1071+ assert .Greater (t , len (project .ExcludePatterns ), 0 , "ExcludePatterns should have at least one pattern for project %s" , project .Name )
1072+ assert .Contains (t , project .ExcludePatterns , "modules/legacy/**" )
1073+ }
1074+
1075+ assert .Greater (t , terragruntProjectsFound , 0 , "should have found at least one terragrunt project" )
1076+ }
1077+
10261078func TestDiggerGenerateProjectsWithOpenTofu (t * testing.T ) {
10271079 tempDir , teardown := setUp ()
10281080 defer teardown ()
0 commit comments