@@ -1171,13 +1171,17 @@ namespace ts {
11711171 } ;
11721172 const expected : ts . ParsedCommandLine = {
11731173 options : { } ,
1174- errors : [
1175- createDiagnosticForConfigFile ( json , 12 , 11 , ts . Diagnostics . File_specification_cannot_contain_multiple_recursive_directory_wildcards_Asterisk_Asterisk_Colon_0 , "**/x/**/*" ) ,
1176- ts . createCompilerDiagnostic ( ts . Diagnostics . No_inputs_were_found_in_config_file_0_Specified_include_paths_were_1_and_exclude_paths_were_2 ,
1177- caseInsensitiveTsconfigPath , JSON . stringify ( json . include ) , "[]" )
1174+ errors : [ ] ,
1175+ fileNames : [
1176+ "c:/dev/x/a.ts" ,
1177+ "c:/dev/x/aa.ts" ,
1178+ "c:/dev/x/b.ts" ,
1179+ "c:/dev/x/y/a.ts" ,
1180+ "c:/dev/x/y/b.ts" ,
11781181 ] ,
1179- fileNames : [ ] ,
1180- wildcardDirectories : { }
1182+ wildcardDirectories : {
1183+ "c:/dev" : ts . WatchDirectoryFlags . Recursive
1184+ }
11811185 } ;
11821186 validateMatches ( expected , json , caseInsensitiveHost , caseInsensitiveBasePath , /*existingOptions*/ undefined , caseInsensitiveTsconfigPath ) ;
11831187 } ) ;
@@ -1192,13 +1196,9 @@ namespace ts {
11921196 } ;
11931197 const expected : ts . ParsedCommandLine = {
11941198 options : { } ,
1195- errors : [
1196- createDiagnosticForConfigFile ( json , 34 , 9 , ts . Diagnostics . File_specification_cannot_contain_multiple_recursive_directory_wildcards_Asterisk_Asterisk_Colon_0 , "**/x/**" )
1197- ] ,
1199+ errors : [ ] ,
11981200 fileNames : [
11991201 "c:/dev/a.ts" ,
1200- "c:/dev/x/a.ts" ,
1201- "c:/dev/x/y/a.ts" ,
12021202 "c:/dev/z/a.ts"
12031203 ] ,
12041204 wildcardDirectories : {
@@ -1426,5 +1426,57 @@ namespace ts {
14261426 } ) ;
14271427 } ) ;
14281428 } ) ;
1429+
1430+ describe ( "exclude or include patterns which start with **" , ( ) => {
1431+ it ( "can exclude dirs whose pattern starts with **" , ( ) => {
1432+ const json = {
1433+ exclude : [
1434+ "**/x"
1435+ ]
1436+ } ;
1437+ const expected : ts . ParsedCommandLine = {
1438+ options : { } ,
1439+ errors : [ ] ,
1440+ fileNames : [
1441+ "/dev/A.ts" ,
1442+ "/dev/B.ts" ,
1443+ "/dev/a.ts" ,
1444+ "/dev/b.ts" ,
1445+ "/dev/c.d.ts" ,
1446+ "/dev/z/a.ts" ,
1447+ "/dev/z/aba.ts" ,
1448+ "/dev/z/abz.ts" ,
1449+ "/dev/z/b.ts" ,
1450+ "/dev/z/bba.ts" ,
1451+ "/dev/z/bbz.ts" ,
1452+ ] ,
1453+ wildcardDirectories : {
1454+ "/dev" : ts . WatchDirectoryFlags . Recursive
1455+ }
1456+ } ;
1457+ validateMatches ( expected , json , caseSensitiveHost , caseSensitiveBasePath ) ;
1458+ } ) ;
1459+ it ( "can include dirs whose pattern starts with **" , ( ) => {
1460+ const json = {
1461+ include : [
1462+ "**/x"
1463+ ]
1464+ } ;
1465+ const expected : ts . ParsedCommandLine = {
1466+ options : { } ,
1467+ errors : [ ] ,
1468+ fileNames : [
1469+ "/dev/x/a.ts" ,
1470+ "/dev/x/b.ts" ,
1471+ "/dev/x/y/a.ts" ,
1472+ "/dev/x/y/b.ts" ,
1473+ ] ,
1474+ wildcardDirectories : {
1475+ "/dev" : ts . WatchDirectoryFlags . Recursive
1476+ }
1477+ } ;
1478+ validateMatches ( expected , json , caseSensitiveHost , caseSensitiveBasePath ) ;
1479+ } ) ;
1480+ } ) ;
14291481 } ) ;
14301482}
0 commit comments