react / wstein / node_modules / browserify / node_modules / module-deps / node_modules / detective / test / parseopts.js
80552 viewsvar test = require('tap').test;1var detective = require('../');2var fs = require('fs');3var src = fs.readFileSync(__dirname + '/files/both.js');45test('nodes specified in opts and parseopts { range: true }', function (t) {6var modules = detective.find(src, { nodes: true, parse: { range: true } });7t.deepEqual(modules.strings, [ 'a', 'b' ]);8t.deepEqual(modules.expressions, [ "'c' + x", "'d' + y" ]);9t.deepEqual(10modules.nodes.map(function (n) {11var arg = n.arguments[0];12return arg.value || arg.left.value;13}),14[ 'a', 'b', 'c', 'd' ],15'has a node for each require');1617var range = modules.nodes[0].range;18t.equal(range[0], 0, 'includes range start');19t.equal(range[1], 12, 'includes range end');20t.end();21});2223test('nodes specified in opts and parseopts { range: false }', function (t) {24var modules = detective.find(src, { nodes: true, parse: { range: false } });25t.deepEqual(modules.strings, [ 'a', 'b' ]);26t.deepEqual(modules.expressions, [ "'c' + x", "'d' + y" ]);27t.deepEqual(28modules.nodes.map(function (n) {29var arg = n.arguments[0];30return arg.value || arg.left.value;31}),32[ 'a', 'b', 'c', 'd' ],33'has a node for each require');3435t.notOk(modules.nodes[0].range, 'includes no ranges');36t.end();37});3839test('nodes specified in opts and parseopts { range: true, loc: true }', function (t) {40var modules = detective.find(src, { nodes: true, parse: { range: true, loc: true } });41t.deepEqual(modules.strings, [ 'a', 'b' ]);42t.deepEqual(modules.expressions, [ "'c' + x", "'d' + y" ]);43t.deepEqual(44modules.nodes.map(function (n) {45var arg = n.arguments[0];46return arg.value || arg.left.value;47}),48[ 'a', 'b', 'c', 'd' ],49'has a node for each require');5051var range = modules.nodes[0].range;52t.equal(range[0], 0, 'includes range start');53t.equal(range[1], 12, 'includes range end');5455var loc = modules.nodes[0].loc;56t.equal(loc.start.line, 1, 'includes start line');57t.equal(loc.start.column, 0, 'includes start column');58t.equal(loc.end.line, 1, 'includes end line');59t.equal(loc.end.column, 12, 'includes end column');60t.end();61});626364