@@ -784,6 +784,72 @@ describe("FlatESLint", () => {
784784 assert . strictEqual ( results [ 0 ] . suppressedMessages . length , 0 ) ;
785785 } ) ;
786786
787+ // https://github.com/eslint/eslint/issues/16260
788+ describe ( "Globbing based on configs" , ( ) => {
789+ it ( "should report zero messages when given a directory with a .js and config file specifying a subdirectory" , async ( ) => {
790+ eslint = new FlatESLint ( {
791+ ignore : false ,
792+ cwd : getFixturePath ( "shallow-glob" )
793+ } ) ;
794+ const results = await eslint . lintFiles ( [ "target-dir" ] ) ;
795+
796+ assert . strictEqual ( results . length , 1 ) ;
797+ assert . strictEqual ( results [ 0 ] . messages . length , 0 ) ;
798+ assert . strictEqual ( results [ 0 ] . suppressedMessages . length , 0 ) ;
799+ } ) ;
800+
801+ it ( "should glob for .jsx file in a subdirectory of the passed-in directory and not glob for any other patterns" , async ( ) => {
802+ eslint = new FlatESLint ( {
803+ ignore : false ,
804+ overrideConfigFile : true ,
805+ overrideConfig : {
806+ files : [ "subdir/**/*.jsx" , "target-dir/*.js" ] ,
807+ languageOptions : {
808+ parserOptions : {
809+ jsx : true
810+ }
811+ }
812+ } ,
813+ cwd : getFixturePath ( "shallow-glob" )
814+ } ) ;
815+ const results = await eslint . lintFiles ( [ "subdir/subsubdir" ] ) ;
816+
817+ assert . strictEqual ( results . length , 2 ) ;
818+ assert . strictEqual ( results [ 0 ] . messages . length , 1 ) ;
819+ assert ( results [ 0 ] . messages [ 0 ] . fatal , "Fatal error expected." ) ;
820+ assert . strictEqual ( results [ 0 ] . suppressedMessages . length , 0 ) ;
821+ assert . strictEqual ( results [ 1 ] . messages . length , 0 ) ;
822+ assert . strictEqual ( results [ 1 ] . suppressedMessages . length , 0 ) ;
823+ } ) ;
824+
825+ it ( "should glob for all files in subdir when passed-in on the command line with a partial matching glob" , async ( ) => {
826+ eslint = new FlatESLint ( {
827+ ignore : false ,
828+ overrideConfigFile : true ,
829+ overrideConfig : {
830+ files : [ "s*/subsubdir/*.jsx" , "target-dir/*.js" ] ,
831+ languageOptions : {
832+ parserOptions : {
833+ jsx : true
834+ }
835+ }
836+ } ,
837+ cwd : getFixturePath ( "shallow-glob" )
838+ } ) ;
839+ const results = await eslint . lintFiles ( [ "subdir" ] ) ;
840+
841+ assert . strictEqual ( results . length , 3 ) ;
842+ assert . strictEqual ( results [ 0 ] . messages . length , 1 ) ;
843+ assert ( results [ 0 ] . messages [ 0 ] . fatal , "Fatal error expected." ) ;
844+ assert . strictEqual ( results [ 0 ] . suppressedMessages . length , 0 ) ;
845+ assert . strictEqual ( results [ 1 ] . messages . length , 1 ) ;
846+ assert ( results [ 0 ] . messages [ 0 ] . fatal , "Fatal error expected." ) ;
847+ assert . strictEqual ( results [ 1 ] . suppressedMessages . length , 0 ) ;
848+ assert . strictEqual ( results [ 2 ] . messages . length , 0 ) ;
849+ assert . strictEqual ( results [ 2 ] . suppressedMessages . length , 0 ) ;
850+ } ) ;
851+ } ) ;
852+
787853 it ( "should report zero messages when given a '**' pattern with a .js and a .js2 file" , async ( ) => {
788854 eslint = new FlatESLint ( {
789855 ignore : false ,
0 commit comments