diff --git a/test/resolver.js b/test/resolver.js index 43b93aa..35e2ebd 100644 --- a/test/resolver.js +++ b/test/resolver.js @@ -336,6 +336,25 @@ test('null main', function (t) { }); }); +test('main: false', function (t) { + t.plan(2); + + var basedir = path.join(__dirname, 'resolver'); + var dir = path.join(basedir, 'false_main'); + resolve('./false_main', { basedir: basedir }, function (err, res, pkg) { + if (err) t.fail(err); + t.equal( + res, + path.join(dir, 'index.js'), + '`"main": false`: resolves to `index.js`' + ); + t.deepEqual(pkg, { + name: 'false_main', + main: false + }); + }); +}); + test('without basedir', function (t) { t.plan(1); diff --git a/test/resolver/false_main/index.js b/test/resolver/false_main/index.js new file mode 100644 index 0000000..e69de29 diff --git a/test/resolver/false_main/package.json b/test/resolver/false_main/package.json new file mode 100644 index 0000000..a7416c0 --- /dev/null +++ b/test/resolver/false_main/package.json @@ -0,0 +1,4 @@ +{ + "name": "false_main", + "main": false +} diff --git a/test/resolver_sync.js b/test/resolver_sync.js index 3afbef1..0ff6ca7 100644 --- a/test/resolver_sync.js +++ b/test/resolver_sync.js @@ -366,6 +366,26 @@ test('null main', function (t) { t.end(); }); + +test('main: false', function (t) { + var basedir = path.join(__dirname, 'resolver'); + var dir = path.join(basedir, 'false_main'); + t.equal( + resolve.sync('./false_main', { basedir: basedir }), + path.join(dir, 'index.js'), + '`"main": false`: resolves to `index.js`' + ); + if (requireResolveSupportsPaths) { + t.equal( + resolve.sync('./false_main', { basedir: basedir }), + require.resolve('./false_main', { paths: [basedir] }), + '`"main": false`: resolve.sync === require.resolve' + ); + } + + t.end(); +}); + var stubStatSync = function stubStatSync(fn) { var statSync = fs.statSync; try {