| var test = require('tape'); |
| var resolve = require('../'); |
| |
| test('foo', function (t) { |
| var dir = __dirname + '/resolver'; |
| |
| t.equal( |
| resolve.sync('./foo', { basedir : dir }), |
| dir + '/foo.js' |
| ); |
| |
| t.equal( |
| resolve.sync('./foo.js', { basedir : dir }), |
| dir + '/foo.js' |
| ); |
| |
| t.throws(function () { |
| resolve.sync('foo', { basedir : dir }); |
| }); |
| |
| t.end(); |
| }); |
| |
| test('bar', function (t) { |
| var dir = __dirname + '/resolver'; |
| |
| t.equal( |
| resolve.sync('foo', { basedir : dir + '/bar' }), |
| dir + '/bar/node_modules/foo/index.js' |
| ); |
| t.end(); |
| }); |
| |
| test('baz', function (t) { |
| var dir = __dirname + '/resolver'; |
| |
| t.equal( |
| resolve.sync('./baz', { basedir : dir }), |
| dir + '/baz/quux.js' |
| ); |
| t.end(); |
| }); |
| |
| test('biz', function (t) { |
| var dir = __dirname + '/resolver/biz/node_modules'; |
| t.equal( |
| resolve.sync('./grux', { basedir : dir }), |
| dir + '/grux/index.js' |
| ); |
| |
| t.equal( |
| resolve.sync('tiv', { basedir : dir + '/grux' }), |
| dir + '/tiv/index.js' |
| ); |
| |
| t.equal( |
| resolve.sync('grux', { basedir : dir + '/tiv' }), |
| dir + '/grux/index.js' |
| ); |
| t.end(); |
| }); |
| |
| test('normalize', function (t) { |
| var dir = __dirname + '/resolver/biz/node_modules/grux'; |
| t.equal( |
| resolve.sync('../grux', { basedir : dir }), |
| dir + '/index.js' |
| ); |
| t.end(); |
| }); |
| |
| test('cup', function (t) { |
| var dir = __dirname + '/resolver'; |
| t.equal( |
| resolve.sync('./cup', { |
| basedir : dir, |
| extensions : [ '.js', '.coffee' ] |
| }), |
| dir + '/cup.coffee' |
| ); |
| |
| t.equal( |
| resolve.sync('./cup.coffee', { |
| basedir : dir |
| }), |
| dir + '/cup.coffee' |
| ); |
| |
| t.throws(function () { |
| resolve.sync('./cup', { |
| basedir : dir, |
| extensions : [ '.js' ] |
| }) |
| }); |
| |
| t.end(); |
| }); |
| |
| test('mug', function (t) { |
| var dir = __dirname + '/resolver'; |
| t.equal( |
| resolve.sync('./mug', { basedir : dir }), |
| dir + '/mug.js' |
| ); |
| |
| t.equal( |
| resolve.sync('./mug', { |
| basedir : dir, |
| extensions : [ '.coffee', '.js' ] |
| }), |
| dir + '/mug.coffee' |
| ); |
| |
| t.equal( |
| resolve.sync('./mug', { |
| basedir : dir, |
| extensions : [ '.js', '.coffee' ] |
| }), |
| dir + '/mug.js' |
| ); |
| |
| t.end(); |
| }); |
| |
| test('other path', function (t) { |
| var resolverDir = __dirname + '/resolver'; |
| var dir = resolverDir + '/bar'; |
| var otherDir = resolverDir + '/other_path'; |
| |
| var path = require('path'); |
| |
| t.equal( |
| resolve.sync('root', { |
| basedir : dir, |
| paths: [otherDir] }), |
| resolverDir + '/other_path/root.js' |
| ); |
| |
| t.equal( |
| resolve.sync('lib/other-lib', { |
| basedir : dir, |
| paths: [otherDir] }), |
| resolverDir + '/other_path/lib/other-lib.js' |
| ); |
| |
| t.throws(function () { |
| resolve.sync('root', { basedir : dir, }); |
| }); |
| |
| t.throws(function () { |
| resolve.sync('zzz', { |
| basedir : dir, |
| paths: [otherDir] }); |
| }); |
| |
| t.end(); |
| }); |
| |
| test('incorrect main', function (t) { |
| var resolverDir = __dirname + '/resolver'; |
| var dir = resolverDir + '/incorrect_main'; |
| |
| t.equal( |
| resolve.sync('./incorrect_main', { basedir : resolverDir }), |
| dir + '/index.js' |
| ) |
| |
| t.end() |
| }); |
| |
| test('#25: node modules with the same name as node stdlib modules', function (t) { |
| var resolverDir = __dirname + '/resolver/punycode'; |
| |
| t.equal( |
| resolve.sync('punycode', { basedir : resolverDir }), |
| resolverDir + '/node_modules/punycode/index.js' |
| ) |
| |
| t.end() |
| }); |