Skip to content

Commit d1c38c3

Browse files
committed
added values w/ tests
1 parent 2eb98b5 commit d1c38c3

File tree

2 files changed

+60
-0
lines changed

2 files changed

+60
-0
lines changed

test/test-values.js

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
var Code = require('code')
2+
var Lab = require('lab')
3+
var lab = exports.lab = Lab.script()
4+
5+
var describe = lab.describe
6+
var it = lab.it
7+
var before = lab.before
8+
var after = lab.after
9+
var expect = Code.expect
10+
11+
var values = require('../values')
12+
13+
describe('values', function () {
14+
function Person (name) {
15+
this.name = name
16+
}
17+
Person.prototype.getName = function () {
18+
return this.name
19+
}
20+
21+
describe('prototype', function () {
22+
before(function (done) {
23+
require('../index')()
24+
done()
25+
})
26+
after(require('./fixtures/reset-object-prototype'))
27+
it('should get all direct enumerables values from object', function (done) {
28+
var objValues = new Person('hey').values()
29+
// assertions
30+
expect(objValues).to.deep.equal(['hey'])
31+
done()
32+
})
33+
})
34+
35+
describe('require', function () {
36+
it('should get all direct enumerables values from object', function (done) {
37+
var objValues = values(new Person('hey'))
38+
// assertions
39+
expect(objValues).to.deep.equal(['hey'])
40+
done()
41+
})
42+
})
43+
})

values.js

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
/**
2+
* @module object-loops/values
3+
*/
4+
5+
/**
6+
* Like `Object.keys`, but for values
7+
* @function module:object-loops/values
8+
* @param {object} [obj] - object to get hasOwnProperty enumerable key's values from
9+
* @returns {array} values
10+
*/
11+
module.exports = values
12+
13+
function values (obj) {
14+
return Object.keys(obj).map(function (key) {
15+
return obj[key]
16+
})
17+
}

0 commit comments

Comments
 (0)