source: node_modules/traverse/test/siblings.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: 968 bytes
RevLine 
[d24f17c]1'use strict';
2
3var test = require('tape');
4var traverse = require('../');
5
6test('siblings', function (t) {
7 var obj = { a: 1, b: 2, c: [4, 5, 6] };
8
9 var res = traverse(obj).reduce(function (acc) {
10 /* eslint no-param-reassign: 0 */
11 var p = '/' + this.path.join('/');
12 if (this.parent) {
13 acc[p] = {
14 siblings: this.parent.keys,
15 key: this.key,
16 index: this.parent.keys.indexOf(this.key),
17 };
18 } else {
19 acc[p] = {
20 siblings: [],
21 key: this.key,
22 index: -1,
23 };
24 }
25 return acc;
26 }, {});
27
28 t.same(res, {
29 '/': { siblings: [], key: undefined, index: -1 },
30 '/a': { siblings: ['a', 'b', 'c'], key: 'a', index: 0 },
31 '/b': { siblings: ['a', 'b', 'c'], key: 'b', index: 1 },
32 '/c': { siblings: ['a', 'b', 'c'], key: 'c', index: 2 },
33 '/c/0': { siblings: ['0', '1', '2'], key: '0', index: 0 },
34 '/c/1': { siblings: ['0', '1', '2'], key: '1', index: 1 },
35 '/c/2': { siblings: ['0', '1', '2'], key: '2', index: 2 },
36 });
37
38 t.end();
39});
Note: See TracBrowser for help on using the repository browser.