| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 | 
							- 'use strict';
 
- var test = require('tape');
 
- var traverse = require('../');
 
- test('json test', function (t) {
 
- 	var id = 54;
 
- 	var callbacks = {};
 
- 	var obj = { moo: function () {}, foo: [2, 3, 4, function () {}] };
 
- 	var scrubbed = traverse(obj).map(function (x) {
 
- 		if (typeof x === 'function') {
 
- 			callbacks[id] = { id: id, f: x, path: this.path };
 
- 			this.update('[Function]');
 
- 			id += 1;
 
- 		}
 
- 	});
 
- 	t.equal(
 
- 		scrubbed.moo,
 
- 		'[Function]',
 
- 		'obj.moo replaced with "[Function]"'
 
- 	);
 
- 	t.equal(
 
- 		scrubbed.foo[3],
 
- 		'[Function]',
 
- 		'obj.foo[3] replaced with "[Function]"'
 
- 	);
 
- 	t.same(scrubbed, {
 
- 		moo: '[Function]',
 
- 		foo: [2, 3, 4, '[Function]'],
 
- 	}, 'Full JSON string matches');
 
- 	t.same(
 
- 		typeof obj.moo,
 
- 		'function',
 
- 		'Original obj.moo still a function'
 
- 	);
 
- 	t.same(
 
- 		typeof obj.foo[3],
 
- 		'function',
 
- 		'Original obj.foo[3] still a function'
 
- 	);
 
- 	t.same(callbacks, {
 
- 		54: { id: 54, f: obj.moo, path: ['moo'] },
 
- 		55: { id: 55, f: obj.foo[3], path: ['foo', '3'] },
 
- 	}, 'Check the generated callbacks list');
 
- 	t.end();
 
- });
 
 
  |