axios-axios/test/specs/utils/forEach.spec.js
2016-09-12 20:51:23 +02:00

64 lines
1.1 KiB
JavaScript

var forEach = require('../../../lib/utils').forEach;
describe('utils::forEach', function () {
it('should loop over an array', function () {
var sum = 0;
forEach([1, 2, 3, 4, 5], function (val) {
sum += val;
});
expect(sum).toEqual(15);
});
it('should loop over object keys', function () {
var keys = '';
var vals = 0;
var obj = {
b: 1,
a: 2,
r: 3
};
forEach(obj, function (v, k) {
keys += k;
vals += v;
});
expect(keys).toEqual('bar');
expect(vals).toEqual(6);
});
it('should handle undefined gracefully', function () {
var count = 0;
forEach(undefined, function () {
count++;
});
expect(count).toEqual(0);
});
it('should make an array out of non-array argument', function () {
var count = 0;
forEach(function () {}, function () {
count++;
});
expect(count).toEqual(1);
});
it('should handle non object prototype gracefully', function () {
var count = 0;
var data = Object.create(null);
data.foo = 'bar'
forEach(data, function () {
count++;
});
expect(count).toEqual(1);
});
});