1 var test = require('tape');
2 var resolve = require('../');
4 test('mock', function (t) {
8 '/foo/bar/baz.js' : 'beep'
11 function opts (basedir) {
14 isFile : function (file, cb) {
15 cb(null, files.hasOwnProperty(file));
17 readFile : function (file, cb) {
18 cb(null, files[file]);
23 resolve('./baz', opts('/foo/bar'), function (err, res, pkg) {
25 t.equal(res, '/foo/bar/baz.js');
26 t.equal(pkg, undefined);
29 resolve('./baz.js', opts('/foo/bar'), function (err, res, pkg) {
31 t.equal(res, '/foo/bar/baz.js');
32 t.equal(pkg, undefined);
35 resolve('baz', opts('/foo/bar'), function (err, res) {
36 t.equal(err.message, "Cannot find module 'baz' from '/foo/bar'");
39 resolve('../baz', opts('/foo/bar'), function (err, res) {
40 t.equal(err.message, "Cannot find module '../baz' from '/foo/bar'");
44 test('mock from package', function (t) {
48 '/foo/bar/baz.js' : 'beep'
51 function opts (basedir) {
54 package : { main: 'bar' },
55 isFile : function (file, cb) {
56 cb(null, files.hasOwnProperty(file));
58 readFile : function (file, cb) {
59 cb(null, files[file]);
64 resolve('./baz', opts('/foo/bar'), function (err, res, pkg) {
66 t.equal(res, '/foo/bar/baz.js');
67 t.equal(pkg.main, 'bar');
70 resolve('./baz.js', opts('/foo/bar'), function (err, res, pkg) {
72 t.equal(res, '/foo/bar/baz.js');
73 t.equal(pkg.main, 'bar');
76 resolve('baz', opts('/foo/bar'), function (err, res) {
77 t.equal(err.message, "Cannot find module 'baz' from '/foo/bar'");
80 resolve('../baz', opts('/foo/bar'), function (err, res) {
81 t.equal(err.message, "Cannot find module '../baz' from '/foo/bar'");
85 test('mock package', function (t) {
89 '/foo/node_modules/bar/baz.js' : 'beep',
90 '/foo/node_modules/bar/package.json' : JSON.stringify({
95 function opts (basedir) {
98 isFile : function (file, cb) {
99 cb(null, files.hasOwnProperty(file));
101 readFile : function (file, cb) {
102 cb(null, files[file]);
107 resolve('bar', opts('/foo'), function (err, res, pkg) {
108 if (err) t.fail(err);
109 t.equal(res, '/foo/node_modules/bar/baz.js');
110 t.equal(pkg.main, './baz.js');
114 test('mock package from package', function (t) {
118 '/foo/node_modules/bar/baz.js' : 'beep',
119 '/foo/node_modules/bar/package.json' : JSON.stringify({
124 function opts (basedir) {
127 package : { main: 'bar' },
128 isFile : function (file, cb) {
129 cb(null, files.hasOwnProperty(file));
131 readFile : function (file, cb) {
132 cb(null, files[file]);
137 resolve('bar', opts('/foo'), function (err, res, pkg) {
138 if (err) t.fail(err);
139 t.equal(res, '/foo/node_modules/bar/baz.js');
140 t.equal(pkg.main, './baz.js');