Files
jsowell-charger-web/jsowell-ui/node_modules/traverse/test/has.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

59 lines
2.1 KiB
JavaScript

'use strict';
var test = require('tape');
var v = require('es-value-fixtures');
var traverse = require('../');
test('has', function (t) {
var obj = { a: 2, b: [4, 5, { c: 6 }] };
t.equal(traverse(obj).has(['b', 2, 'c']), true);
t.equal(traverse(obj).has(['b', 2, 'c', 0]), false);
t.equal(traverse(obj).has(['b', 2, 'd']), false);
t.equal(traverse(obj).has([]), true);
t.equal(traverse(obj).has(['a']), true);
t.equal(traverse(obj).has(['a', 2]), false);
// TODO: change this to `false`
t.equal(traverse(undefined).has([]), true, 'traversing a non-object somehow returns true for no paths');
t.equal(traverse(undefined).has(['my', 'path']), false, 'traversing a non-object does not have any paths');
t.test('symbols', { skip: !v.hasSymbols }, function (st) {
/* eslint no-restricted-properties: 1 */
var globalSymbol = Symbol.for('d');
var localSymbol = Symbol('e');
obj[globalSymbol] = {};
obj[globalSymbol][localSymbol] = 7;
obj[localSymbol] = 8;
st.equal(traverse(obj).has([globalSymbol]), false);
st.equal(traverse(obj, { includeSymbols: true }).has([globalSymbol]), true);
st.equal(traverse(obj).has([globalSymbol, globalSymbol]), false);
st.equal(traverse(obj, { includeSymbols: true }).has([globalSymbol, globalSymbol]), false);
st.equal(traverse(obj).has([globalSymbol, localSymbol]), false);
st.equal(traverse(obj, { includeSymbols: true }).has([globalSymbol, localSymbol]), true);
st.equal(traverse(obj).has([localSymbol]), false);
st.equal(traverse(obj, { includeSymbols: true }).has([localSymbol]), true);
st.equal(traverse(obj).has([Symbol('d')]), false);
st.equal(traverse(obj, { includeSymbols: true }).has([Symbol('d')]), false);
st.equal(traverse(obj).has([Symbol('e')]), false);
st.equal(traverse(obj, { includeSymbols: true }).has([Symbol('e')]), false);
st.equal(traverse(obj).has([Symbol.for('d')]), false);
st.equal(traverse(obj, { includeSymbols: true }).has([Symbol.for('d')]), true);
st.equal(traverse(obj).has([Symbol.for('e')]), false);
st.equal(traverse(obj, { includeSymbols: true }).has([Symbol.for('e')]), false);
st.end();
});
t.end();
});