Merge pull request #253 from anatoliychakkaev/master
Fixes and tests for validation
This commit is contained in:
commit
18b901df59
|
@ -199,6 +199,7 @@ AbstractClass.create = function (data, callback) {
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
var obj;
|
||||
// if we come from save
|
||||
if (data instanceof Model && !data.id) {
|
||||
|
|
|
@ -396,11 +396,7 @@ Validatable.prototype.isValid = function (callback, data) {
|
|||
|
||||
}, data);
|
||||
|
||||
if (!async) {
|
||||
if (valid) cleanErrors(this);
|
||||
if (callback) callback(valid);
|
||||
return valid;
|
||||
} else {
|
||||
if (async) {
|
||||
// in case of async validation we should return undefined here,
|
||||
// because not all validations are finished yet
|
||||
return;
|
||||
|
|
|
@ -47,6 +47,7 @@ describe('validations', function() {
|
|||
describe('commons', function() {
|
||||
|
||||
describe('skipping', function() {
|
||||
|
||||
it('should allow to skip using if: attribute', function() {
|
||||
User.validatesPresenceOf('pendingPeriod', {if: 'createdByAdmin'});
|
||||
var user = new User;
|
||||
|
@ -56,6 +57,36 @@ describe('validations', function() {
|
|||
user.pendingPeriod = 1
|
||||
user.isValid().should.be.true;
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
describe.only('lifecycle', function() {
|
||||
|
||||
it('should work on create', function(done) {
|
||||
User.validatesPresenceOf('name');
|
||||
User.create(function(e) {
|
||||
should.exist(e);
|
||||
User.create({name: 'Valid'}, function(e, d) {
|
||||
should.not.exist(e);
|
||||
done();
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
it('should work on update', function(done) {
|
||||
User.validatesPresenceOf('name');
|
||||
User.create({name: 'Valid'}, function(e, d) {
|
||||
d.updateAttribute('name', null, function(e) {
|
||||
should.exist(e);
|
||||
e.should.be.instanceOf(Error);
|
||||
d.updateAttribute('name', 'Vasiliy', function(e) {
|
||||
should.not.exist(e);
|
||||
done();
|
||||
});
|
||||
})
|
||||
});
|
||||
});
|
||||
|
||||
});
|
||||
});
|
||||
|
||||
|
|
Loading…
Reference in New Issue