source: node_modules/traverse/test/interface.js

main
Last change on this file was d24f17c, checked in by Aleksandar Panovski <apano77@…>, 15 months ago

Initial commit

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