mirror of
https://github.com/axios/axios.git
synced 2026-04-13 02:51:56 +08:00
64 lines
1.1 KiB
JavaScript
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);
|
|
});
|
|
});
|