pathfilter.js
1 var path = require('path'); 2 var test = require('tape'); 3 var resolve = require('../'); 4 5 var resolverDir = path.join(__dirname, '/pathfilter/deep_ref'); 6 7 var pathFilterFactory = function (t) { 8 return function (pkg, x, remainder) { 9 t.equal(pkg.version, '1.2.3'); 10 t.equal(x, path.join(resolverDir, 'node_modules/deep/ref')); 11 t.equal(remainder, 'ref'); 12 return 'alt'; 13 }; 14 }; 15 16 test('#62: deep module references and the pathFilter', function (t) { 17 t.test('deep/ref.js', function (st) { 18 st.plan(3); 19 20 resolve('deep/ref', { basedir: resolverDir }, function (err, res, pkg) { 21 if (err) st.fail(err); 22 23 st.equal(pkg.version, '1.2.3'); 24 st.equal(res, path.join(resolverDir, 'node_modules/deep/ref.js')); 25 }); 26 27 var res = resolve.sync('deep/ref', { basedir: resolverDir }); 28 st.equal(res, path.join(resolverDir, 'node_modules/deep/ref.js')); 29 }); 30 31 t.test('deep/deeper/ref', function (st) { 32 st.plan(4); 33 34 resolve( 35 'deep/deeper/ref', 36 { basedir: resolverDir }, 37 function (err, res, pkg) { 38 if (err) t.fail(err); 39 st.notEqual(pkg, undefined); 40 st.equal(pkg.version, '1.2.3'); 41 st.equal(res, path.join(resolverDir, 'node_modules/deep/deeper/ref.js')); 42 } 43 ); 44 45 var res = resolve.sync( 46 'deep/deeper/ref', 47 { basedir: resolverDir } 48 ); 49 st.equal(res, path.join(resolverDir, 'node_modules/deep/deeper/ref.js')); 50 }); 51 52 t.test('deep/ref alt', function (st) { 53 st.plan(8); 54 55 var pathFilter = pathFilterFactory(st); 56 57 var res = resolve.sync( 58 'deep/ref', 59 { basedir: resolverDir, pathFilter: pathFilter } 60 ); 61 st.equal(res, path.join(resolverDir, 'node_modules/deep/alt.js')); 62 63 resolve( 64 'deep/ref', 65 { basedir: resolverDir, pathFilter: pathFilter }, 66 function (err, res, pkg) { 67 if (err) st.fail(err); 68 st.equal(res, path.join(resolverDir, 'node_modules/deep/alt.js')); 69 st.end(); 70 } 71 ); 72 }); 73 74 t.end(); 75 });