get-property-names
Version:
Non-`own` version of `Object.getOwnPropertyNames()`
34 lines (26 loc) • 649 B
JavaScript
const test = require('tape')
const getPropertyNames = require('./')
test('objects', t => {
t.plan(2)
t.deepEqual(getPropertyNames({a: 1}), ['a'])
t.deepEqual(getPropertyNames({a: 1, b: 2}), ['a', 'b'])
})
test('custom class instances', t => {
t.plan(3)
class A {
foo () {}
}
class B extends A {
bar () {}
}
class C extends A {
constructor () {
super()
this.baz = 1
}
}
t.deepEqual(getPropertyNames(new A()), ['constructor', 'foo'])
t.deepEqual(getPropertyNames(new B()), ['constructor', 'bar', 'foo'])
t.deepEqual(getPropertyNames(new C()), ['baz', 'constructor', 'foo'])
})