Tune async validation hooks
This commit is contained in:
parent
c96cf9f248
commit
d7fbf1a575
|
@ -112,7 +112,8 @@ Validatable.prototype.isValid = function (callback) {
|
||||||
value: new Errors
|
value: new Errors
|
||||||
});
|
});
|
||||||
|
|
||||||
this.trigger('validation', function () {
|
this.trigger('validation', function (validationsDone) {
|
||||||
|
var inst = this;
|
||||||
this.constructor._validations.forEach(function (v) {
|
this.constructor._validations.forEach(function (v) {
|
||||||
if (v[2] && v[2].async) {
|
if (v[2] && v[2].async) {
|
||||||
valid = false;
|
valid = false;
|
||||||
|
@ -124,16 +125,20 @@ Validatable.prototype.isValid = function (callback) {
|
||||||
valid = false;
|
valid = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
var asyncFail = false;
|
});
|
||||||
function done(fail) {
|
|
||||||
asyncFail = asyncFail || fail;
|
var asyncFail = false;
|
||||||
if (--wait === 0 && callback) {
|
function done(fail) {
|
||||||
callback(!asyncFail);
|
asyncFail = asyncFail || fail;
|
||||||
|
if (--wait === 0 && callback) {
|
||||||
|
validationsDone.call(inst, function () {
|
||||||
|
callback(!asyncFail);
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
});
|
||||||
|
|
||||||
if (valid) cleanErrors(this);
|
if (valid) cleanErrors(this);
|
||||||
if (!async && callback) callback(valid);
|
if (!async && callback) callback(valid);
|
||||||
|
|
|
@ -263,7 +263,7 @@ it 'should validate asynchronously', (test) ->
|
||||||
|
|
||||||
it 'should validate uniqueness', (test) ->
|
it 'should validate uniqueness', (test) ->
|
||||||
User.validatesUniquenessOf 'email'
|
User.validatesUniquenessOf 'email'
|
||||||
User.create getValidAttributes(), ->
|
User.create getValidAttributes(), (err, user) ->
|
||||||
user = new User getValidAttributes()
|
user = new User getValidAttributes()
|
||||||
|
|
||||||
# test.ok not user.isValid(), 'not valid because async validation'
|
# test.ok not user.isValid(), 'not valid because async validation'
|
||||||
|
|
Loading…
Reference in New Issue