61 lines
1.2 KiB
JavaScript
61 lines
1.2 KiB
JavaScript
'use strict'
|
|
|
|
describe('hasOwn test', function(){
|
|
|
|
var hasOwn = require('../index')
|
|
|
|
it('should return true for own props', function(){
|
|
|
|
hasOwn({name: 'x'}, 'name')
|
|
.should
|
|
.equal(true)
|
|
|
|
hasOwn({name: 'x'}, 'name')
|
|
.should
|
|
.equal(true)
|
|
})
|
|
|
|
it('should return false for not own props', function(){
|
|
var first = { name: 'x'}
|
|
var second = Object.create(first)
|
|
|
|
hasOwn(first, 'name')
|
|
.should
|
|
.equal(true)
|
|
|
|
hasOwn(first, 'x')
|
|
.should
|
|
.equal(false)
|
|
|
|
hasOwn(second, 'name')
|
|
.should
|
|
.equal(false)
|
|
|
|
second.name = 'bil'
|
|
hasOwn(second, 'name')
|
|
.should
|
|
.equal(true)
|
|
})
|
|
|
|
it('should allow curry', function(){
|
|
|
|
var person = {
|
|
name: 'x'
|
|
}
|
|
|
|
var child = Object.create(person)
|
|
child.age = 1
|
|
child.firstName = 'bil'
|
|
|
|
var result = []
|
|
var childHasOwn = hasOwn(child)
|
|
|
|
for(var k in child) if (childHasOwn(k)){
|
|
result.push(k)
|
|
}
|
|
|
|
result
|
|
.should
|
|
.eql(['age','firstName'])
|
|
})
|
|
}) |