worm
Version:
Whatever ORM
114 lines (95 loc) • 2.83 kB
JavaScript
var $ = require('../../'),
common = require('./common'),
should = require('should');
var User = $.model({
name: 'User',
attributes: [ 'id', 'name_first', 'name_last', 'email', 'location' ],
id: [ 'id' ],
adapters: [ $.adapter('test1') ]
});
var oli = {
name_first: 'Olivier',
name_last: 'Lalonde',
email: 'olalonde@gmail.com',
notPersistent: 'dont save me im not in attribute list'
};
var bill = {
name_first: 'Bill',
name_last: 'Gates',
email: 'bill@microsoft.com'
};
var $oli = $.wrap(User, oli);
var $bill = $.wrap(User, bill);
describe('$.getAll', function () {
var err, saved_oli, saved_bill, users;
before(function (done) {
common.pretest(done);
});
before(function (done) {
$.save($oli).end(function (_err, _user) {
err = _err;
saved_oli = _user;
$.save($bill).end(function (_err, _user) {
saved_bill = _user;
$.getAll(User).end(function (_err, _users) {
err = err || _err;
users = _users;
done();
});
});
});
});
it('should not return an error', function () {
should.ok(!err);
});
it('loaded users should be an array', function () {
should.exist(users);
users.should.be.an.instanceOf(Array);
});
it('loaded users should have length 2', function () {
users.length.should.be.equal(2);
});
it('loaded users should have user properties', function () {
users.forEach(function (user) {
user.should.have.property('name_first');
user.should.have.property('name_last');
user.should.have.property('email');
});
});
it('loaded users should "weak equal" oli and bill', function () {
var _oli, _bill;
if (users[0].name_first === 'Bill') {
_bill = users[0];
_oli = users[1];
}
else {
_oli = users[0];
_bill = users[1];
}
['name_first', 'name_last', 'email'].forEach(function (attr) {
_oli[attr].should.equal(oli[attr]);
_bill[attr].should.equal(bill[attr]);
});
});
it('loaded users should deep equal oli and bill', function () {
if (users[0] !== oli) {
users[0].should.equal(bill);
users[1].should.equal(oli);
}
else {
users[0].should.equal(oli);
users[1].should.equal(bill);
}
});
//it('loaded user should have properties set', function () {
//loaded_user.should.have.property('name_first');
//loaded_user.should.have.property('name_last');
//loaded_user.should.have.property('email');
//loaded_user.should.not.have.property('notPersistent');
//});
//it('loaded user properties should have correct values', function () {
//loaded_user.name_first.should.equal('Olivier');
//loaded_user.name_last.should.equal('Lalonde');
//loaded_user.email.should.equal('olalonde@gmail.com');
//});
});