You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
33 lines
910 B
33 lines
910 B
var falafel = require('../'); |
|
var test = require('tape'); |
|
|
|
test('parent', function (t) { |
|
t.plan(5); |
|
|
|
var src = '(function () {' |
|
+ 'var xs = [ 1, 2, 3 ];' |
|
+ 'fn(ys);' |
|
+ '})()'; |
|
|
|
var output = falafel(src, function (node) { |
|
if (node.type === 'ArrayExpression') { |
|
t.equal(node.parent.type, 'VariableDeclarator'); |
|
t.equal( |
|
ffBracket(node.parent.source()), |
|
'xs = [ 1, 2, 3 ]' |
|
); |
|
t.equal(node.parent.parent.type, 'VariableDeclaration'); |
|
t.equal( |
|
ffBracket(node.parent.parent.source()), |
|
'var xs = [ 1, 2, 3 ];' |
|
); |
|
node.parent.update('ys = 4;'); |
|
} |
|
}); |
|
|
|
Function(['fn'], output)(function (x) { t.equal(x, 4) }); |
|
}); |
|
|
|
function ffBracket (s) { |
|
return s.replace(/\[\s*/, '[ ').replace(/\s*\]/, ' ]'); |
|
}
|
|
|