requestutilss
Version:
[![Made by unshift][made-by]](http://unshift.io)[![Version npm][version]](http://browsenpm.org/package/requests)[![Build Status][build]](https://travis-ci.org/unshiftio/requests)[![Dependencies][david]](https://david-dm.org/unshiftio/requests)[![Coverage
57 lines (45 loc) • 1.48 kB
JavaScript
describe('Requested', function () {
'use strict';
var Requested = require('../requested')
, assume = require('assume')
, r;
it('is exported as a function', function () {
assume(Requested).is.a('function');
});
describe('#typeof', function () {
it('knows the difference between an array and object', function () {
var r = new Requested();
assume(r.typeof({})).equals('object');
assume(r.typeof([])).equals('array');
});
});
describe('#merge', function () {
before(function () {
r = new Requested();
});
it('returns the merge', function () {
var x = { foo: 'foo' }
, y = { bar: 'bar' }
, z = r.merge(x, y);
assume(z).equals(x);
assume(x.bar).equals('bar');
});
it('merges multiple objects', function () {
var xyz = r.merge({}, { foo: 'foo' }, { bar: 'bar' }, { hello: 'world' });
assume(xyz.foo).equals('foo');
assume(xyz.bar).equals('bar');
assume(xyz.hello).equals('world');
});
it('can deep merge without modification', function () {
var x = { foo: 'foo' }
, y = { deep: { nested: 'object' } }
, z = { deep: { another: 'key' } }
, xyz = r.merge(x, y, z);
assume(x.deep).is.a('object');
assume(x.deep).does.not.equal(y.deep);
assume(x.deep).does.not.equal(z.deep);
assume(x.deep.nested).equals('object');
assume(x.deep.another).equals('key');
});
});
});