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();
- });
|