diff --git a/.gitignore b/.gitignore new file mode 100644 index 00000000..5171c540 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +node_modules +npm-debug.log \ No newline at end of file diff --git a/lib/async.js b/lib/async.js index 83b2c6c4..3f11fb5c 100644 --- a/lib/async.js +++ b/lib/async.js @@ -32,7 +32,7 @@ module.exports = function resolve (x, opts, cb) { if (/^(?:\.\.?(?:\/|$)|\/|([A-Za-z]:)?[\\\/])/.test(x)) { var res = path.resolve(y, x); - if (x === '..') res += '/'; + if (x === '..' || x[x.length-1] === '/') res += path.sep; loadAsFile(res, function (err, m, pkg) { if (err) cb(err) else if (m) cb(null, m, pkg) diff --git a/lib/sync.js b/lib/sync.js index ef91eddb..24836181 100644 --- a/lib/sync.js +++ b/lib/sync.js @@ -20,7 +20,7 @@ module.exports = function (x, opts) { if (/^(?:\.\.?(?:\/|$)|\/|([A-Za-z]:)?[\\\/])/.test(x)) { var res = path.resolve(y, x); - if (x === '..') res += '/'; + if (x === '..' || x[x.length-1] === '/') res += path.sep; var m = loadAsFileSync(res) || loadAsDirectorySync(res); if (m) return m; } else { diff --git a/test/issue51.js b/test/issue51.js new file mode 100644 index 00000000..0a62af21 --- /dev/null +++ b/test/issue51.js @@ -0,0 +1,12 @@ +var test = require('tap').test; +var resolve = require('../'); +var path = require('path') + +test('issue 51', function (t) { + t.ok(resolve.sync('./issue51/test/') === path.resolve(__dirname, 'issue51/test/index.js')); + resolve('./issue51/test/', function(e, result) { + if(e) throw e + t.ok(result === path.resolve(__dirname, 'issue51/test/index.js')); + t.end(); + }) +}); diff --git a/test/issue51/moo.js b/test/issue51/moo.js new file mode 100644 index 00000000..5f5ab2ee --- /dev/null +++ b/test/issue51/moo.js @@ -0,0 +1 @@ +require('./test/') \ No newline at end of file diff --git a/test/issue51/test.js b/test/issue51/test.js new file mode 100644 index 00000000..b22d07bc --- /dev/null +++ b/test/issue51/test.js @@ -0,0 +1 @@ +console.log('file') \ No newline at end of file diff --git a/test/issue51/test/index.js b/test/issue51/test/index.js new file mode 100644 index 00000000..9525d959 --- /dev/null +++ b/test/issue51/test/index.js @@ -0,0 +1 @@ +console.log('folder') \ No newline at end of file