UNPKG

worm

Version:

Whatever ORM

88 lines (67 loc) 1.83 kB
var $ = require('../../'), common = require('./common'), should = require('should'); var User = $.model({ name: 'User', attributes: [ 'id', 'name_first', 'name_last', 'email', 'location' ], adapters: [ $.adapter('test1') ] }); // or User = $.models.User; var oli = { name_first: 'Olivier', name_last: 'Lalonde', email: 'olalonde@gmail.com', notPersistent: 'dont save me im not in attribute list' }; var $oli; describe('wrapping a new user', function () { before(function (done) { common.pretest(done); }); before(function () { $oli = $.wrap(User, oli); }); it('isDirty should return true', function () { should.ok($oli.isDirty()); }); it('isNew should return true', function () { should.ok($oli.isNew()); }); }); describe('saving a new user', function () { var err, user; before(function (done) { $.save($oli).end(function (_err, _user) { if (_err) console.error(_err); err = _err; user = _user; done(); }); }); it('should not return an error', function () { should.ok(!err); }); it('user should be an object', function () { should.exist(user); user.should.be.a('object'); }); it('should set the properties on user', function () { user.should.have.property('name_first'); user.should.have.property('name_last'); user.should.have.property('email'); user.should.have.property('notPersistent'); }); it('the user returned should be a reference to oli', function () { user.should.equal(oli); }); it('$.wrap(obj) === $oli', function () { should.ok($.wrap(user) === $oli); }); it('isDirty should return false', function () { should.ok(!$.wrap(user).isDirty()); }); it('isNew should return false', function () { should.ok(!$.wrap(user).isNew()); }); });