diff --git a/packages/jest-haste-map/src/crawlers/__tests__/node.test.js b/packages/jest-haste-map/src/crawlers/__tests__/node.test.js index 64362a1d0515..3c93a83566bf 100644 --- a/packages/jest-haste-map/src/crawlers/__tests__/node.test.js +++ b/packages/jest-haste-map/src/crawlers/__tests__/node.test.js @@ -217,4 +217,20 @@ describe('node crawler', () => { expect(data.files).toEqual({}); }); }); + + it('completes with undefined names', () => { + process.platform = 'win32'; + + nodeCrawl = require('../node'); + + const files = Object.create(null); + return nodeCrawl({ + data: {files}, + extensions: ['js'], + ignore: pearMatcher, + roots: ['/empty'], + }).then(data => { + expect(data.files).toEqual({}); + }); + }); }); diff --git a/packages/jest-haste-map/src/crawlers/node.js b/packages/jest-haste-map/src/crawlers/node.js index 17ce3452e757..004dd46f23a1 100644 --- a/packages/jest-haste-map/src/crawlers/node.js +++ b/packages/jest-haste-map/src/crawlers/node.js @@ -30,7 +30,10 @@ function find( activeCalls++; fs.readdir(directory, (err, names) => { activeCalls--; - + if (!names) { + callback(result); + return; + } names.forEach(file => { file = path.join(directory, file); if (ignore(file)) {