forked from ramda/ramda
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathhas.js
36 lines (28 loc) · 926 Bytes
/
has.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
var R = require('../source/index.js');
var eq = require('./shared/eq.js');
describe('has', function() {
var fred = {name: 'Fred', age: 23};
var anon = {age: 99};
it('returns true if the specified property is present', function() {
eq(R.has('name', fred), true);
});
it('returns false if the specified property is absent', function() {
eq(R.has('name', anon), false);
});
it('does not check properties from the prototype chain', function() {
var Person = function() {};
Person.prototype.age = function() {};
var bob = new Person();
eq(R.has('age', bob), false);
});
it('returns false for non-objects', function() {
eq(R.has('a', undefined), false);
eq(R.has('a', null), false);
eq(R.has('a', true), false);
eq(R.has('a', ''), false);
eq(R.has('a', /a/), false);
});
it('tests currying', function() {
eq(R.has('a')({ a: { b: 1 } }), true);
});
});