1 | var test = require('tape');
|
2 | var evaluate = require('../');
|
3 | var parse = require('esprima').parse;
|
4 |
|
5 | test('resolved', function (t) {
|
6 | t.plan(1);
|
7 |
|
8 | var src = '[1,2,3+4*10+n,foo(3+5),obj[""+"x"].y]';
|
9 | var ast = parse(src).body[0].expression;
|
10 | var res = evaluate(ast, {
|
11 | n: 6,
|
12 | foo: function (x) { return x * 100 },
|
13 | obj: { x: { y: 555 } }
|
14 | });
|
15 | t.deepEqual(res, [ 1, 2, 49, 800, 555 ]);
|
16 | });
|
17 |
|
18 | test('unresolved', function (t) {
|
19 | t.plan(1);
|
20 |
|
21 | var src = '[1,2,3+4*10*z+n,foo(3+5),obj[""+"x"].y]';
|
22 | var ast = parse(src).body[0].expression;
|
23 | var res = evaluate(ast, {
|
24 | n: 6,
|
25 | foo: function (x) { return x * 100 },
|
26 | obj: { x: { y: 555 } }
|
27 | });
|
28 | t.equal(res, undefined);
|
29 | });
|