UNPKG

869 BJavaScriptView Raw
1var traverse = require('../');
2var test = require('tap').test;
3
4test('subexpr', function (t) {
5 var obj = [ 'a', 4, 'b', 5, 'c', 6 ];
6 var r = traverse(obj).map(function (x) {
7 if (typeof x === 'number') {
8 this.update([ x - 0.1, x, x + 0.1 ], true);
9 }
10 });
11
12 t.same(obj, [ 'a', 4, 'b', 5, 'c', 6 ]);
13 t.same(r, [
14 'a', [ 3.9, 4, 4.1 ],
15 'b', [ 4.9, 5, 5.1 ],
16 'c', [ 5.9, 6, 6.1 ],
17 ]);
18 t.end();
19});
20
21test('block', function (t) {
22 var obj = [ [ 1 ], [ 2 ], [ 3 ] ];
23 var r = traverse(obj).map(function (x) {
24 if (Array.isArray(x) && !this.isRoot) {
25 if (x[0] === 5) this.block()
26 else this.update([ [ x[0] + 1 ] ])
27 }
28 });
29
30 t.same(r, [
31 [ [ [ [ [ 5 ] ] ] ] ],
32 [ [ [ [ 5 ] ] ] ],
33 [ [ [ 5 ] ] ],
34 ]);
35 t.end();
36});