Merge pull request #1380 from strongloop/feature/fix-create-promise
Return promise for batch create
This commit is contained in:
commit
492b644679
|
@ -265,7 +265,7 @@ DataAccessObject.create = function(data, options, cb) {
|
||||||
|
|
||||||
data = data || {};
|
data = data || {};
|
||||||
options = options || {};
|
options = options || {};
|
||||||
cb = cb || (Array.isArray(data) ? noCallback : utils.createPromiseCallback());
|
cb = cb || utils.createPromiseCallback();
|
||||||
|
|
||||||
assert(typeof data === 'object', 'The data argument must be an object or array');
|
assert(typeof data === 'object', 'The data argument must be an object or array');
|
||||||
assert(typeof options === 'object', 'The options argument must be an object');
|
assert(typeof options === 'object', 'The options argument must be an object');
|
||||||
|
@ -305,7 +305,7 @@ DataAccessObject.create = function(data, options, cb) {
|
||||||
}
|
}
|
||||||
cb(errors, data);
|
cb(errors, data);
|
||||||
});
|
});
|
||||||
return;
|
return cb.promise;
|
||||||
}
|
}
|
||||||
|
|
||||||
var enforced = {};
|
var enforced = {};
|
||||||
|
|
|
@ -277,6 +277,34 @@ describe('manipulation', function() {
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('should create batch of objects (promise variant)', function(done) {
|
||||||
|
var batch = [
|
||||||
|
{name: 'ShaltayPromise'},
|
||||||
|
{name: 'BoltayPromise'},
|
||||||
|
{},
|
||||||
|
];
|
||||||
|
Person.create(batch).then(function(ps) {
|
||||||
|
should.exist(ps);
|
||||||
|
ps.should.be.instanceOf(Array);
|
||||||
|
ps.should.have.lengthOf(batch.length);
|
||||||
|
|
||||||
|
Person.validatesPresenceOf('name');
|
||||||
|
Person.create(batch, function(errors, persons) {
|
||||||
|
delete Person.validations;
|
||||||
|
should.exist(errors);
|
||||||
|
errors.should.have.lengthOf(batch.length);
|
||||||
|
should.not.exist(errors[0]);
|
||||||
|
should.not.exist(errors[1]);
|
||||||
|
should.exist(errors[2]);
|
||||||
|
|
||||||
|
should.exist(persons);
|
||||||
|
persons.should.have.lengthOf(batch.length);
|
||||||
|
persons[0].errors.should.be.false;
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
it('should create batch of objects with beforeCreate', function(done) {
|
it('should create batch of objects with beforeCreate', function(done) {
|
||||||
Person.beforeCreate = function(next, data) {
|
Person.beforeCreate = function(next, data) {
|
||||||
if (data && data.name === 'A') {
|
if (data && data.name === 'A') {
|
||||||
|
|
Loading…
Reference in New Issue