@@ -24,6 +24,23 @@ const hash = require("../../../lib/cli-engine/hash");
2424const { unIndent, createCustomTeardown } = require ( "../../_utils" ) ;
2525const coreRules = require ( "../../../lib/rules" ) ;
2626
27+ //------------------------------------------------------------------------------
28+ // Helpers
29+ //------------------------------------------------------------------------------
30+
31+ /**
32+ * Creates a directory if it doesn't already exist.
33+ * @param {string } dirPath The path to the directory that should exist.
34+ * @returns {void }
35+ */
36+ function ensureDirectoryExists ( dirPath ) {
37+ try {
38+ fs . statSync ( dirPath ) ;
39+ } catch {
40+ fs . mkdirSync ( dirPath ) ;
41+ }
42+ }
43+
2744//------------------------------------------------------------------------------
2845// Tests
2946//------------------------------------------------------------------------------
@@ -773,7 +790,7 @@ describe("FlatESLint", () => {
773790 } ) ;
774791 const results = await eslint . lintFiles ( [ "fixtures/files/" ] ) ;
775792
776- assert . strictEqual ( results . length , 2 ) ;
793+ assert . strictEqual ( results . length , 3 ) ;
777794 assert . strictEqual ( results [ 0 ] . messages . length , 0 ) ;
778795 assert . strictEqual ( results [ 1 ] . messages . length , 0 ) ;
779796 assert . strictEqual ( results [ 0 ] . suppressedMessages . length , 0 ) ;
@@ -823,6 +840,58 @@ describe("FlatESLint", () => {
823840 assert . strictEqual ( results [ 0 ] . suppressedMessages . length , 0 ) ;
824841 } ) ;
825842
843+ // https://github.com/eslint/eslint/issues/16265
844+ describe ( "Dot files in searches" , ( ) => {
845+
846+ it ( "should find dot files in current directory when a . pattern is used" , async ( ) => {
847+ eslint = new FlatESLint ( {
848+ cwd : getFixturePath ( "dot-files" )
849+ } ) ;
850+ const results = await eslint . lintFiles ( [ "." ] ) ;
851+
852+ assert . strictEqual ( results . length , 3 ) ;
853+ assert . strictEqual ( results [ 0 ] . messages . length , 0 ) ;
854+ assert . strictEqual ( results [ 0 ] . filePath , getFixturePath ( "dot-files/.a.js" ) ) ;
855+ assert . strictEqual ( results [ 0 ] . suppressedMessages . length , 0 ) ;
856+ assert . strictEqual ( results [ 1 ] . messages . length , 0 ) ;
857+ assert . strictEqual ( results [ 1 ] . filePath , getFixturePath ( "dot-files/.c.js" ) ) ;
858+ assert . strictEqual ( results [ 1 ] . suppressedMessages . length , 0 ) ;
859+ assert . strictEqual ( results [ 2 ] . messages . length , 0 ) ;
860+ assert . strictEqual ( results [ 2 ] . filePath , getFixturePath ( "dot-files/b.js" ) ) ;
861+ assert . strictEqual ( results [ 2 ] . suppressedMessages . length , 0 ) ;
862+ } ) ;
863+
864+ it ( "should find dot files in current directory when a *.js pattern is used" , async ( ) => {
865+ eslint = new FlatESLint ( {
866+ cwd : getFixturePath ( "dot-files" )
867+ } ) ;
868+ const results = await eslint . lintFiles ( [ "*.js" ] ) ;
869+
870+ assert . strictEqual ( results . length , 3 ) ;
871+ assert . strictEqual ( results [ 0 ] . messages . length , 0 ) ;
872+ assert . strictEqual ( results [ 0 ] . filePath , getFixturePath ( "dot-files/.a.js" ) ) ;
873+ assert . strictEqual ( results [ 0 ] . suppressedMessages . length , 0 ) ;
874+ assert . strictEqual ( results [ 1 ] . messages . length , 0 ) ;
875+ assert . strictEqual ( results [ 1 ] . filePath , getFixturePath ( "dot-files/.c.js" ) ) ;
876+ assert . strictEqual ( results [ 1 ] . suppressedMessages . length , 0 ) ;
877+ assert . strictEqual ( results [ 2 ] . messages . length , 0 ) ;
878+ assert . strictEqual ( results [ 2 ] . filePath , getFixturePath ( "dot-files/b.js" ) ) ;
879+ assert . strictEqual ( results [ 2 ] . suppressedMessages . length , 0 ) ;
880+ } ) ;
881+
882+ it ( "should find dot files in current directory when a .a.js pattern is used" , async ( ) => {
883+ eslint = new FlatESLint ( {
884+ cwd : getFixturePath ( "dot-files" )
885+ } ) ;
886+ const results = await eslint . lintFiles ( [ ".a.js" ] ) ;
887+
888+ assert . strictEqual ( results . length , 1 ) ;
889+ assert . strictEqual ( results [ 0 ] . messages . length , 0 ) ;
890+ assert . strictEqual ( results [ 0 ] . filePath , getFixturePath ( "dot-files/.a.js" ) ) ;
891+ assert . strictEqual ( results [ 0 ] . suppressedMessages . length , 0 ) ;
892+ } ) ;
893+ } ) ;
894+
826895 // https://github.com/eslint/eslint/issues/16275
827896 describe ( "Glob patterns without matches" , ( ) => {
828897
@@ -992,11 +1061,13 @@ describe("FlatESLint", () => {
9921061 } ) ;
9931062 const results = await eslint . lintFiles ( [ "fixtures/files/*" ] ) ;
9941063
995- assert . strictEqual ( results . length , 2 ) ;
1064+ assert . strictEqual ( results . length , 3 ) ;
9961065 assert . strictEqual ( results [ 0 ] . messages . length , 0 ) ;
9971066 assert . strictEqual ( results [ 1 ] . messages . length , 0 ) ;
1067+ assert . strictEqual ( results [ 2 ] . messages . length , 0 ) ;
9981068 assert . strictEqual ( results [ 0 ] . suppressedMessages . length , 0 ) ;
9991069 assert . strictEqual ( results [ 1 ] . suppressedMessages . length , 0 ) ;
1070+ assert . strictEqual ( results [ 2 ] . suppressedMessages . length , 0 ) ;
10001071 } ) ;
10011072
10021073 it ( "should resolve globs when 'globInputPaths' option is true" , async ( ) => {
@@ -1009,11 +1080,13 @@ describe("FlatESLint", () => {
10091080 } ) ;
10101081 const results = await eslint . lintFiles ( [ "fixtures/files/*" ] ) ;
10111082
1012- assert . strictEqual ( results . length , 2 ) ;
1083+ assert . strictEqual ( results . length , 3 ) ;
10131084 assert . strictEqual ( results [ 0 ] . messages . length , 0 ) ;
10141085 assert . strictEqual ( results [ 1 ] . messages . length , 0 ) ;
1086+ assert . strictEqual ( results [ 2 ] . messages . length , 0 ) ;
10151087 assert . strictEqual ( results [ 0 ] . suppressedMessages . length , 0 ) ;
10161088 assert . strictEqual ( results [ 1 ] . suppressedMessages . length , 0 ) ;
1089+ assert . strictEqual ( results [ 2 ] . suppressedMessages . length , 0 ) ;
10171090 } ) ;
10181091
10191092 // only works on a Windows machine
@@ -1029,11 +1102,13 @@ describe("FlatESLint", () => {
10291102 } ) ;
10301103 const results = await eslint . lintFiles ( [ "fixtures\\files\\*" ] ) ;
10311104
1032- assert . strictEqual ( results . length , 2 ) ;
1105+ assert . strictEqual ( results . length , 3 ) ;
10331106 assert . strictEqual ( results [ 0 ] . messages . length , 0 ) ;
10341107 assert . strictEqual ( results [ 1 ] . messages . length , 0 ) ;
1108+ assert . strictEqual ( results [ 2 ] . messages . length , 0 ) ;
10351109 assert . strictEqual ( results [ 0 ] . suppressedMessages . length , 0 ) ;
10361110 assert . strictEqual ( results [ 1 ] . suppressedMessages . length , 0 ) ;
1111+ assert . strictEqual ( results [ 2 ] . suppressedMessages . length , 0 ) ;
10371112 } ) ;
10381113
10391114 }
@@ -1358,11 +1433,13 @@ describe("FlatESLint", () => {
13581433 } ) ;
13591434 const results = await eslint . lintFiles ( [ "fixtures/files/*.?s*" ] ) ;
13601435
1361- assert . strictEqual ( results . length , 2 ) ;
1436+ assert . strictEqual ( results . length , 3 ) ;
13621437 assert . strictEqual ( results [ 0 ] . messages . length , 0 ) ;
13631438 assert . strictEqual ( results [ 0 ] . suppressedMessages . length , 0 ) ;
13641439 assert . strictEqual ( results [ 1 ] . messages . length , 0 ) ;
13651440 assert . strictEqual ( results [ 1 ] . suppressedMessages . length , 0 ) ;
1441+ assert . strictEqual ( results [ 2 ] . messages . length , 0 ) ;
1442+ assert . strictEqual ( results [ 2 ] . suppressedMessages . length , 0 ) ;
13661443 } ) ;
13671444
13681445 it ( "should return one error message when given a config with rules with options and severity level set to error" , async ( ) => {
@@ -2785,6 +2862,7 @@ describe("FlatESLint", () => {
27852862 } ) ;
27862863
27872864 it ( "should throw if the directory exists and is empty" , async ( ) => {
2865+ ensureDirectoryExists ( getFixturePath ( "cli-engine/empty" ) ) ;
27882866 await assert . rejects ( async ( ) => {
27892867 await eslint . lintFiles ( [ "empty" ] ) ;
27902868 } , / N o f i l e s m a t c h i n g ' e m p t y ' w e r e f o u n d \. / u) ;
0 commit comments