Skip to content

Commit f73ed59

Browse files
committed
Adding more matchFiles test cases
1 parent f817ffa commit f73ed59

File tree

1 file changed

+189
-0
lines changed

1 file changed

+189
-0
lines changed

tests/cases/unittests/matchFiles.ts

Lines changed: 189 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,16 @@ namespace ts {
6565
"c:/dev/f.other"
6666
]);
6767

68+
const caseInsensitiveCommonFoldersHost = new Utils.MockParseConfigHost(caseInsensitiveBasePath, /*useCaseSensitiveFileNames*/ false, [
69+
"c:/dev/a.ts",
70+
"c:/dev/a.d.ts",
71+
"c:/dev/a.js",
72+
"c:/dev/b.ts",
73+
"c:/dev/node_modules/a.ts",
74+
"c:/dev/bower_components/a.ts",
75+
"c:/dev/jspm_packages/a.ts"
76+
]);
77+
6878
describe("matchFiles", () => {
6979
describe("with literal file list", () => {
7080
it("without exclusions", () => {
@@ -297,6 +307,87 @@ namespace ts {
297307
assert.deepEqual(actual.wildcardDirectories, expected.wildcardDirectories);
298308
assert.deepEqual(actual.errors, expected.errors);
299309
});
310+
it("with common package folders and no exclusions", () => {
311+
const json = {
312+
include: [
313+
"a.ts",
314+
"b.ts",
315+
"node_modules/a.ts",
316+
"bower_components/a.ts",
317+
"jspm_packages/a.ts"
318+
]
319+
};
320+
const expected: ts.ParsedCommandLine = {
321+
options: {},
322+
errors: [],
323+
fileNames: [
324+
"c:/dev/a.ts",
325+
"c:/dev/b.ts"
326+
],
327+
wildcardDirectories: {},
328+
};
329+
const actual = ts.parseJsonConfigFileContent(json, caseInsensitiveCommonFoldersHost, caseInsensitiveBasePath);
330+
assert.deepEqual(actual.fileNames, expected.fileNames);
331+
assert.deepEqual(actual.wildcardDirectories, expected.wildcardDirectories);
332+
assert.deepEqual(actual.errors, expected.errors);
333+
});
334+
it("with common package folders and exclusions", () => {
335+
const json = {
336+
include: [
337+
"a.ts",
338+
"b.ts",
339+
"node_modules/a.ts",
340+
"bower_components/a.ts",
341+
"jspm_packages/a.ts"
342+
],
343+
exclude: [
344+
"a.ts",
345+
"b.ts"
346+
]
347+
};
348+
const expected: ts.ParsedCommandLine = {
349+
options: {},
350+
errors: [],
351+
fileNames: [
352+
"c:/dev/bower_components/a.ts",
353+
"c:/dev/jspm_packages/a.ts",
354+
"c:/dev/node_modules/a.ts"
355+
],
356+
wildcardDirectories: {},
357+
};
358+
const actual = ts.parseJsonConfigFileContent(json, caseInsensitiveCommonFoldersHost, caseInsensitiveBasePath);
359+
assert.deepEqual(actual.fileNames, expected.fileNames);
360+
assert.deepEqual(actual.wildcardDirectories, expected.wildcardDirectories);
361+
assert.deepEqual(actual.errors, expected.errors);
362+
});
363+
it("with common package folders and empty exclude", () => {
364+
const json = {
365+
include: [
366+
"a.ts",
367+
"b.ts",
368+
"node_modules/a.ts",
369+
"bower_components/a.ts",
370+
"jspm_packages/a.ts"
371+
],
372+
exclude: <string[]>[]
373+
};
374+
const expected: ts.ParsedCommandLine = {
375+
options: {},
376+
errors: [],
377+
fileNames: [
378+
"c:/dev/a.ts",
379+
"c:/dev/b.ts",
380+
"c:/dev/bower_components/a.ts",
381+
"c:/dev/jspm_packages/a.ts",
382+
"c:/dev/node_modules/a.ts"
383+
],
384+
wildcardDirectories: {},
385+
};
386+
const actual = ts.parseJsonConfigFileContent(json, caseInsensitiveCommonFoldersHost, caseInsensitiveBasePath);
387+
assert.deepEqual(actual.fileNames, expected.fileNames);
388+
assert.deepEqual(actual.wildcardDirectories, expected.wildcardDirectories);
389+
assert.deepEqual(actual.errors, expected.errors);
390+
});
300391
});
301392

302393
describe("with wildcard include list", () => {
@@ -392,6 +483,32 @@ namespace ts {
392483
assert.deepEqual(actual.wildcardDirectories, expected.wildcardDirectories);
393484
assert.deepEqual(actual.errors, expected.errors);
394485
});
486+
it("with multiple recursive directories", () => {
487+
const json = {
488+
include: [
489+
"x/y/**/a.ts",
490+
"x/**/a.ts",
491+
"z/**/a.ts"
492+
]
493+
};
494+
const expected: ts.ParsedCommandLine = {
495+
options: {},
496+
errors: [],
497+
fileNames: [
498+
"c:/dev/x/a.ts",
499+
"c:/dev/x/y/a.ts",
500+
"c:/dev/z/a.ts"
501+
],
502+
wildcardDirectories: {
503+
"c:/dev/x": ts.WatchDirectoryFlags.Recursive,
504+
"c:/dev/z": ts.WatchDirectoryFlags.Recursive
505+
},
506+
};
507+
const actual = ts.parseJsonConfigFileContent(json, caseInsensitiveHost, caseInsensitiveBasePath);
508+
assert.deepEqual(actual.fileNames, expected.fileNames);
509+
assert.deepEqual(actual.wildcardDirectories, expected.wildcardDirectories);
510+
assert.deepEqual(actual.errors, expected.errors);
511+
});
395512
it("case sensitive", () => {
396513
const json = {
397514
include: [
@@ -486,6 +603,78 @@ namespace ts {
486603
assert.deepEqual(actual.wildcardDirectories, expected.wildcardDirectories);
487604
assert.deepEqual(actual.errors, expected.errors);
488605
});
606+
it("with common package folders and no exclusions", () => {
607+
const json = {
608+
include: [
609+
"**/a.ts"
610+
]
611+
};
612+
const expected: ts.ParsedCommandLine = {
613+
options: {},
614+
errors: [],
615+
fileNames: [
616+
"c:/dev/a.ts"
617+
],
618+
wildcardDirectories: {
619+
"c:/dev": ts.WatchDirectoryFlags.Recursive
620+
},
621+
};
622+
const actual = ts.parseJsonConfigFileContent(json, caseInsensitiveCommonFoldersHost, caseInsensitiveBasePath);
623+
assert.deepEqual(actual.fileNames, expected.fileNames);
624+
assert.deepEqual(actual.wildcardDirectories, expected.wildcardDirectories);
625+
assert.deepEqual(actual.errors, expected.errors);
626+
});
627+
it("with common package folders and exclusions", () => {
628+
const json = {
629+
include: [
630+
"**/a.ts"
631+
],
632+
exclude: [
633+
"a.ts"
634+
]
635+
};
636+
const expected: ts.ParsedCommandLine = {
637+
options: {},
638+
errors: [],
639+
fileNames: [
640+
"c:/dev/bower_components/a.ts",
641+
"c:/dev/jspm_packages/a.ts",
642+
"c:/dev/node_modules/a.ts"
643+
],
644+
wildcardDirectories: {
645+
"c:/dev": ts.WatchDirectoryFlags.Recursive
646+
},
647+
};
648+
const actual = ts.parseJsonConfigFileContent(json, caseInsensitiveCommonFoldersHost, caseInsensitiveBasePath);
649+
assert.deepEqual(actual.fileNames, expected.fileNames);
650+
assert.deepEqual(actual.wildcardDirectories, expected.wildcardDirectories);
651+
assert.deepEqual(actual.errors, expected.errors);
652+
});
653+
it("with common package folders and empty exclude", () => {
654+
const json = {
655+
include: [
656+
"**/a.ts"
657+
],
658+
exclude: <string[]>[]
659+
};
660+
const expected: ts.ParsedCommandLine = {
661+
options: {},
662+
errors: [],
663+
fileNames: [
664+
"c:/dev/a.ts",
665+
"c:/dev/bower_components/a.ts",
666+
"c:/dev/jspm_packages/a.ts",
667+
"c:/dev/node_modules/a.ts"
668+
],
669+
wildcardDirectories: {
670+
"c:/dev": ts.WatchDirectoryFlags.Recursive
671+
},
672+
};
673+
const actual = ts.parseJsonConfigFileContent(json, caseInsensitiveCommonFoldersHost, caseInsensitiveBasePath);
674+
assert.deepEqual(actual.fileNames, expected.fileNames);
675+
assert.deepEqual(actual.wildcardDirectories, expected.wildcardDirectories);
676+
assert.deepEqual(actual.errors, expected.errors);
677+
});
489678
it("exclude .js files when allowJs=false", () => {
490679
const json = {
491680
compilerOptions: {

0 commit comments

Comments
 (0)