| var path = require('path'); |
| var test = require('tape'); |
| var resolve = require('../'); |
| |
| var resolverDir = path.join(__dirname, '/pathfilter/deep_ref'); |
| |
| var pathFilterFactory = function (t) { |
| return function (pkg, x, remainder) { |
| t.equal(pkg.version, '1.2.3'); |
| t.equal(x, path.join(resolverDir, 'node_modules/deep/ref')); |
| t.equal(remainder, 'ref'); |
| return 'alt'; |
| }; |
| }; |
| |
| test('#62: deep module references and the pathFilter', function (t) { |
| t.test('deep/ref.js', function (st) { |
| st.plan(3); |
| |
| resolve('deep/ref', { basedir: resolverDir }, function (err, res, pkg) { |
| if (err) st.fail(err); |
| |
| st.equal(pkg.version, '1.2.3'); |
| st.equal(res, path.join(resolverDir, 'node_modules/deep/ref.js')); |
| }); |
| |
| var res = resolve.sync('deep/ref', { basedir: resolverDir }); |
| st.equal(res, path.join(resolverDir, 'node_modules/deep/ref.js')); |
| }); |
| |
| t.test('deep/deeper/ref', function (st) { |
| st.plan(4); |
| |
| resolve( |
| 'deep/deeper/ref', |
| { basedir: resolverDir }, |
| function (err, res, pkg) { |
| if (err) t.fail(err); |
| st.notEqual(pkg, undefined); |
| st.equal(pkg.version, '1.2.3'); |
| st.equal(res, path.join(resolverDir, 'node_modules/deep/deeper/ref.js')); |
| } |
| ); |
| |
| var res = resolve.sync( |
| 'deep/deeper/ref', |
| { basedir: resolverDir } |
| ); |
| st.equal(res, path.join(resolverDir, 'node_modules/deep/deeper/ref.js')); |
| }); |
| |
| t.test('deep/ref alt', function (st) { |
| st.plan(8); |
| |
| var pathFilter = pathFilterFactory(st); |
| |
| var res = resolve.sync( |
| 'deep/ref', |
| { basedir: resolverDir, pathFilter: pathFilter } |
| ); |
| st.equal(res, path.join(resolverDir, 'node_modules/deep/alt.js')); |
| |
| resolve( |
| 'deep/ref', |
| { basedir: resolverDir, pathFilter: pathFilter }, |
| function (err, res, pkg) { |
| if (err) st.fail(err); |
| st.equal(res, path.join(resolverDir, 'node_modules/deep/alt.js')); |
| st.end(); |
| } |
| ); |
| }); |
| |
| t.end(); |
| }); |