Version 1
[yaffs-website] / node_modules / grunt / node_modules / resolve / test / resolver_sync.js
diff --git a/node_modules/grunt/node_modules/resolve/test/resolver_sync.js b/node_modules/grunt/node_modules/resolve/test/resolver_sync.js
new file mode 100644 (file)
index 0000000..5982531
--- /dev/null
@@ -0,0 +1,180 @@
+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()
+});