56 lines
1.4 KiB
JavaScript
56 lines
1.4 KiB
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');
|
|
});
|
|
});
|
|
});
|