|  | 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() | 
|  | }); |