blob: 699ca7c42346eb80859cb65964a38d55dc2c5f26 [file] [log] [blame]
'use strict';
var should = require('chai').should();
var PouchDB = require('../../packages/node_modules/pouchdb-for-coverage');
var clone = PouchDB.utils.clone;
describe('test.clone.js', function () {
it('Clones regular objects', function () {
var obj1 = {foo: 'bar'};
var obj2 = clone(obj1);
obj1.baz = 'quuz';
should.not.exist(obj2.baz);
});
it('Doesn\'t clone fancy objects', function () {
function Kitty() {
}
Kitty.prototype.meow = function () {
return 'meow';
};
var obj1 = {kitty: new Kitty()};
var obj2 = clone(obj1);
obj1.kitty.meow().should.equal('meow');
obj2.kitty.meow().should.equal('meow');
obj1.kitty.foo = 'bar';
obj2.kitty.foo.should.equal('bar');
});
it('Clones regular dates', function () {
var obj1 = {name: 'one', number: 1, date: new Date('2020-12-04')};
clone(obj1);
});
it('Clones dates non finite dates', function () {
var obj1 = {name: 'zero', number: 0, date: new Date('0000-00-00')};
try {
clone(obj1);
} catch (err) {
console.log(err);
}
});
});