source: node_modules/traverse/test/has.js

main
Last change on this file was d24f17c, checked in by Aleksandar Panovski <apano77@…>, 15 months ago

Initial commit

  • Property mode set to 100644
File size: 1.2 KB
Line 
1'use strict';
2
3var test = require('tape');
4var v = require('es-value-fixtures');
5var traverse = require('../');
6
7test('has', function (t) {
8 var obj = { a: 2, b: [4, 5, { c: 6 }] };
9
10 t.equal(traverse(obj).has(['b', 2, 'c']), true);
11 t.equal(traverse(obj).has(['b', 2, 'c', 0]), false);
12 t.equal(traverse(obj).has(['b', 2, 'd']), false);
13 t.equal(traverse(obj).has([]), true);
14 t.equal(traverse(obj).has(['a']), true);
15 t.equal(traverse(obj).has(['a', 2]), false);
16
17 t.test('symbols', { skip: !v.hasSymbols }, function (st) {
18 /* eslint no-restricted-properties: 1 */
19 var globalSymbol = Symbol.for('d');
20 var localSymbol = Symbol('e');
21
22 obj[globalSymbol] = {};
23 obj[globalSymbol][localSymbol] = 7;
24 obj[localSymbol] = 8;
25
26 st.equal(traverse(obj).has([globalSymbol]), true);
27 st.equal(traverse(obj).has([globalSymbol, globalSymbol]), false);
28 st.equal(traverse(obj).has([globalSymbol, localSymbol]), true);
29 st.equal(traverse(obj).has([localSymbol]), true);
30 st.equal(traverse(obj).has([localSymbol]), true);
31 st.equal(traverse(obj).has([Symbol('e')]), false);
32 st.equal(traverse(obj).has([Symbol.for('d')]), true);
33 st.equal(traverse(obj).has([Symbol.for('e')]), false);
34
35 st.end();
36 });
37
38 t.end();
39});
Note: See TracBrowser for help on using the repository browser.