1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
| 'use strict';
|
| var test = require('tape');
| var traverse = require('../');
|
| test('interface map', function (t) {
| var obj = { a: [5, 6, 7], b: { c: [8] } };
|
| t.same(
| traverse.paths(obj)
| .sort()
| .map(function (path) { return path.join('/'); })
| .slice(1)
| .join(' ')
| ,
| 'a a/0 a/1 a/2 b b/c b/c/0'
| );
|
| t.same(
| traverse.nodes(obj),
| [
| { a: [5, 6, 7], b: { c: [8] } },
| [5, 6, 7], 5, 6, 7,
| { c: [8] }, [8], 8,
| ]
| );
|
| t.same(
| traverse.map(obj, function (node) {
| if (typeof node === 'number') {
| return node + 1000;
| }
| if (Array.isArray(node)) {
| return node.join(' ');
| }
| return void undefined;
| }),
| { a: '5 6 7', b: { c: '8' } }
| );
|
| var nodes = 0;
| traverse.forEach(obj, function () { nodes += 1; });
| t.equal(nodes, 8);
|
| t.end();
| });
|
|