1
0
Fork 0
management/front/dkha-web-sz-main/node_modules/traverse/test/has.js

40 lines
1.2 KiB
JavaScript
Raw Normal View History

2024-01-16 21:26:16 +08:00
'use strict';
2023-12-18 13:12:25 +08:00
var test = require('tape');
2024-01-16 21:26:16 +08:00
var v = require('es-value-fixtures');
2023-12-18 13:12:25 +08:00
var traverse = require('../');
test('has', function (t) {
2024-01-16 21:26:16 +08:00
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);
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]), true);
st.equal(traverse(obj).has([globalSymbol, globalSymbol]), false);
st.equal(traverse(obj).has([globalSymbol, localSymbol]), true);
st.equal(traverse(obj).has([localSymbol]), true);
st.equal(traverse(obj).has([localSymbol]), true);
st.equal(traverse(obj).has([Symbol('e')]), false);
st.equal(traverse(obj).has([Symbol.for('d')]), true);
st.equal(traverse(obj).has([Symbol.for('e')]), false);
st.end();
});
t.end();
2023-12-18 13:12:25 +08:00
});