machinepack-waterline
Version:
A database-agnostic connectivity library for sending queries, managing dynamic db connections, committing/rolling back transactions, and more.
64 lines (51 loc) • 1.53 kB
JavaScript
var assert = require('assert');
var path = require('path');
var SailsApp = require('sails').Sails;
var Waterline = require('../');
var fsx = require('fs-extra');
var _ = require('lodash');
var lifecycle = require('./helpers/lifecycle');
describe('machinepack-waterline: create', function() {
var Sails = new SailsApp();
var app;
before(function(done) {
lifecycle.liftSails(function(err, _sails) {
if (err) {return done(err);}
app = _sails;
return done();
});
});
after(function(done) {
lifecycle.lowerSails(app, done);
});
describe('when called with valid inputs', function() {
it('should add the new model instance', function(done) {
// Attempt to add a new user "roscoe" with pet "argus"
Waterline.create({
model: 'user',
attributes: {
name: 'bubba',
age: '22',
pets: [4,5]
}
})
.setEnvironment({sails: app})
.exec({
error: done,
success: function(newRecordId) {
assert.equal(newRecordId, 5);
// Check out the new record
app.models.user.findOne(5).populate('pets').exec(function(err, bubba) {
if (err) {return done(err);}
assert.equal(bubba.name, 'bubba');
assert.equal(bubba.age, 22);
assert(bubba.pets.length, 2);
assert(_.find(bubba.pets, {id: 4}));
assert(_.find(bubba.pets, {id: 5}));
return done();
});
}
});
});
});
});