odin/node_modules/requests/test/requested.js
2022-11-26 15:56:34 +01:00

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');
});
});
});