Files
jsowell-charger-web/jsowell-ui/node_modules/traverse/test/json.js
Lemon f5e6e29f00 Merge branch 'dev-zza' into dev
# Conflicts:
#	jsowell-ui/.env.development
#	jsowell-ui/.env.staging
#	jsowell-ui/bin/build-sit.bat
#	jsowell-ui/bin/build.bat
#	jsowell-ui/src/api/adapayMember/adapayMember.js
#	jsowell-ui/src/api/pile/merchant.js
#	jsowell-ui/src/router/index.js
#	jsowell-ui/src/views/financial/financeDetail.vue
#	jsowell-ui/src/views/financial/merchant.vue
#	jsowell-ui/src/views/homeIndex/homeIndex.vue
#	jsowell-ui/src/views/login.vue
#	jsowell-ui/src/views/pile/basic/detail.vue
#	jsowell-ui/src/views/pile/station/components/SiteInfo.vue
#	jsowell-ui/src/views/pile/station/detail.vue
#	jsowell-ui/src/views/pile/station/orderReport.vue
2025-06-03 14:26:37 +08:00

56 lines
1.0 KiB
JavaScript

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