| 123456789101112131415161718192021222324252627282930313233343536373839 | 
							- 'use strict';
 
- var test = require('tape');
 
- var traverse = require('../');
 
- test('siblings', function (t) {
 
- 	var obj = { a: 1, b: 2, c: [4, 5, 6] };
 
- 	var res = traverse(obj).reduce(function (acc) {
 
- 		/* eslint no-param-reassign: 0 */
 
- 		var p = '/' + this.path.join('/');
 
- 		if (this.parent) {
 
- 			acc[p] = {
 
- 				siblings: this.parent.keys,
 
- 				key: this.key,
 
- 				index: this.parent.keys.indexOf(this.key),
 
- 			};
 
- 		} else {
 
- 			acc[p] = {
 
- 				siblings: [],
 
- 				key: this.key,
 
- 				index: -1,
 
- 			};
 
- 		}
 
- 		return acc;
 
- 	}, {});
 
- 	t.same(res, {
 
- 		'/': { siblings: [], key: undefined, index: -1 },
 
- 		'/a': { siblings: ['a', 'b', 'c'], key: 'a', index: 0 },
 
- 		'/b': { siblings: ['a', 'b', 'c'], key: 'b', index: 1 },
 
- 		'/c': { siblings: ['a', 'b', 'c'], key: 'c', index: 2 },
 
- 		'/c/0': { siblings: ['0', '1', '2'], key: '0', index: 0 },
 
- 		'/c/1': { siblings: ['0', '1', '2'], key: '1', index: 1 },
 
- 		'/c/2': { siblings: ['0', '1', '2'], key: '2', index: 2 },
 
- 	});
 
- 	t.end();
 
- });
 
 
  |