-
-
Notifications
You must be signed in to change notification settings - Fork 0
/
deepExists.spec.js
45 lines (39 loc) · 1.1 KB
/
deepExists.spec.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
const { deepExists } = require('./index');
describe('deepExists:', () => {
test('should confirm existsence of embedded property', () => {
// given
const obj = { x: { y: { z: 123 } } };
// then
expect(deepExists(obj, 'x.y.z')).toBe(true);
});
test('should confirm existsence o embedded property - query with array', () => {
// given
const obj = { x: { y: { z: 123 } } };
// then
expect(deepExists(obj, ['x', 'y', 'z'])).toBe(true);
});
test('should confirm an array item', () => {
// given
const obj = { x: ['a', 'b'] };
// then
expect(deepExists(obj, 'x.1')).toBe(true);
});
test('should decline an array item', () => {
// given
const obj = { x: ['a', 'b'] };
// then
expect(deepExists(obj, 'x.3')).toBe(false);
});
test('should decline existence of a property', () => {
// given
const obj = { };
// then
expect(deepExists(obj, 'x.y.z')).toBe(false);
});
test('should check property existance not value', () => {
// given
const obj = { a: false };
// then
expect(deepExists(obj, 'a')).toBe(true);
});
});