@@ -24,6 +24,23 @@ const hash = require("../../../lib/cli-engine/hash");
24
24
const { unIndent, createCustomTeardown } = require ( "../../_utils" ) ;
25
25
const coreRules = require ( "../../../lib/rules" ) ;
26
26
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
+
27
44
//------------------------------------------------------------------------------
28
45
// Tests
29
46
//------------------------------------------------------------------------------
@@ -773,7 +790,7 @@ describe("FlatESLint", () => {
773
790
} ) ;
774
791
const results = await eslint . lintFiles ( [ "fixtures/files/" ] ) ;
775
792
776
- assert . strictEqual ( results . length , 2 ) ;
793
+ assert . strictEqual ( results . length , 3 ) ;
777
794
assert . strictEqual ( results [ 0 ] . messages . length , 0 ) ;
778
795
assert . strictEqual ( results [ 1 ] . messages . length , 0 ) ;
779
796
assert . strictEqual ( results [ 0 ] . suppressedMessages . length , 0 ) ;
@@ -823,6 +840,58 @@ describe("FlatESLint", () => {
823
840
assert . strictEqual ( results [ 0 ] . suppressedMessages . length , 0 ) ;
824
841
} ) ;
825
842
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
+
826
895
// https://github.com/eslint/eslint/issues/16275
827
896
describe ( "Glob patterns without matches" , ( ) => {
828
897
@@ -992,11 +1061,13 @@ describe("FlatESLint", () => {
992
1061
} ) ;
993
1062
const results = await eslint . lintFiles ( [ "fixtures/files/*" ] ) ;
994
1063
995
- assert . strictEqual ( results . length , 2 ) ;
1064
+ assert . strictEqual ( results . length , 3 ) ;
996
1065
assert . strictEqual ( results [ 0 ] . messages . length , 0 ) ;
997
1066
assert . strictEqual ( results [ 1 ] . messages . length , 0 ) ;
1067
+ assert . strictEqual ( results [ 2 ] . messages . length , 0 ) ;
998
1068
assert . strictEqual ( results [ 0 ] . suppressedMessages . length , 0 ) ;
999
1069
assert . strictEqual ( results [ 1 ] . suppressedMessages . length , 0 ) ;
1070
+ assert . strictEqual ( results [ 2 ] . suppressedMessages . length , 0 ) ;
1000
1071
} ) ;
1001
1072
1002
1073
it ( "should resolve globs when 'globInputPaths' option is true" , async ( ) => {
@@ -1009,11 +1080,13 @@ describe("FlatESLint", () => {
1009
1080
} ) ;
1010
1081
const results = await eslint . lintFiles ( [ "fixtures/files/*" ] ) ;
1011
1082
1012
- assert . strictEqual ( results . length , 2 ) ;
1083
+ assert . strictEqual ( results . length , 3 ) ;
1013
1084
assert . strictEqual ( results [ 0 ] . messages . length , 0 ) ;
1014
1085
assert . strictEqual ( results [ 1 ] . messages . length , 0 ) ;
1086
+ assert . strictEqual ( results [ 2 ] . messages . length , 0 ) ;
1015
1087
assert . strictEqual ( results [ 0 ] . suppressedMessages . length , 0 ) ;
1016
1088
assert . strictEqual ( results [ 1 ] . suppressedMessages . length , 0 ) ;
1089
+ assert . strictEqual ( results [ 2 ] . suppressedMessages . length , 0 ) ;
1017
1090
} ) ;
1018
1091
1019
1092
// only works on a Windows machine
@@ -1029,11 +1102,13 @@ describe("FlatESLint", () => {
1029
1102
} ) ;
1030
1103
const results = await eslint . lintFiles ( [ "fixtures\\files\\*" ] ) ;
1031
1104
1032
- assert . strictEqual ( results . length , 2 ) ;
1105
+ assert . strictEqual ( results . length , 3 ) ;
1033
1106
assert . strictEqual ( results [ 0 ] . messages . length , 0 ) ;
1034
1107
assert . strictEqual ( results [ 1 ] . messages . length , 0 ) ;
1108
+ assert . strictEqual ( results [ 2 ] . messages . length , 0 ) ;
1035
1109
assert . strictEqual ( results [ 0 ] . suppressedMessages . length , 0 ) ;
1036
1110
assert . strictEqual ( results [ 1 ] . suppressedMessages . length , 0 ) ;
1111
+ assert . strictEqual ( results [ 2 ] . suppressedMessages . length , 0 ) ;
1037
1112
} ) ;
1038
1113
1039
1114
}
@@ -1358,11 +1433,13 @@ describe("FlatESLint", () => {
1358
1433
} ) ;
1359
1434
const results = await eslint . lintFiles ( [ "fixtures/files/*.?s*" ] ) ;
1360
1435
1361
- assert . strictEqual ( results . length , 2 ) ;
1436
+ assert . strictEqual ( results . length , 3 ) ;
1362
1437
assert . strictEqual ( results [ 0 ] . messages . length , 0 ) ;
1363
1438
assert . strictEqual ( results [ 0 ] . suppressedMessages . length , 0 ) ;
1364
1439
assert . strictEqual ( results [ 1 ] . messages . length , 0 ) ;
1365
1440
assert . strictEqual ( results [ 1 ] . suppressedMessages . length , 0 ) ;
1441
+ assert . strictEqual ( results [ 2 ] . messages . length , 0 ) ;
1442
+ assert . strictEqual ( results [ 2 ] . suppressedMessages . length , 0 ) ;
1366
1443
} ) ;
1367
1444
1368
1445
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", () => {
2785
2862
} ) ;
2786
2863
2787
2864
it ( "should throw if the directory exists and is empty" , async ( ) => {
2865
+ ensureDirectoryExists ( getFixturePath ( "cli-engine/empty" ) ) ;
2788
2866
await assert . rejects ( async ( ) => {
2789
2867
await eslint . lintFiles ( [ "empty" ] ) ;
2790
2868
} , / 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