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;
|
var obj;
|
||||||
// if we come from save
|
// if we come from save
|
||||||
if (data instanceof Model && !data.id) {
|
if (data instanceof Model && !data.id) {
|
||||||
|
|
|
@ -396,11 +396,7 @@ Validatable.prototype.isValid = function (callback, data) {
|
||||||
|
|
||||||
}, data);
|
}, data);
|
||||||
|
|
||||||
if (!async) {
|
if (async) {
|
||||||
if (valid) cleanErrors(this);
|
|
||||||
if (callback) callback(valid);
|
|
||||||
return valid;
|
|
||||||
} else {
|
|
||||||
// in case of async validation we should return undefined here,
|
// in case of async validation we should return undefined here,
|
||||||
// because not all validations are finished yet
|
// because not all validations are finished yet
|
||||||
return;
|
return;
|
||||||
|
|
|
@ -47,6 +47,7 @@ describe('validations', function() {
|
||||||
describe('commons', function() {
|
describe('commons', function() {
|
||||||
|
|
||||||
describe('skipping', function() {
|
describe('skipping', function() {
|
||||||
|
|
||||||
it('should allow to skip using if: attribute', function() {
|
it('should allow to skip using if: attribute', function() {
|
||||||
User.validatesPresenceOf('pendingPeriod', {if: 'createdByAdmin'});
|
User.validatesPresenceOf('pendingPeriod', {if: 'createdByAdmin'});
|
||||||
var user = new User;
|
var user = new User;
|
||||||
|
@ -56,6 +57,36 @@ describe('validations', function() {
|
||||||
user.pendingPeriod = 1
|
user.pendingPeriod = 1
|
||||||
user.isValid().should.be.true;
|
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