import Form from '../../lib/form.js'; import Math from '../../lib/math'; import {expect} from 'chai'; describe('lib::FORM', () => { 'use strict'; describe('constructor', () => { let basicForm = { name : { required : true, validator : 'isLength', options : {min : 3, max : 70}, fake : '{{name.lastName}}' }, id : { validator : 'isInt', required : true, options : {min : 0, max : 20}, fake() { return '1' } }, sample : { required : false, validator(x) { return new Math().checkUuid(x); }, convert(x) { return x; // fake convert a=a }, fake() { return new Math().uuid(); } }, email : { convert : 'normalizeEmail', type : 'email', validator : 'isEmail', fake : '{{internet.email}}' } }; it('should fakefill to valid', (done) => { let form = new Form(basicForm); form.fakeFill(); form.fill({}, false); let valid = form.isValid(); expect(valid).equal(true); done(); }); it('should fill to valid', (done) => { let form = new Form(basicForm); form.fill({name : 'max', id : '5'}); expect(form.isValid()).equal(true); done(); }); it('should put error', (done) => { let localForm = { e1 : {validator : 'isEmail', required : true, fake : 'notamail'}, e2 : {required : false, validator(x) { return false; }}, e3 : {required : true, validator(x) { return false; }}, e4 : { required : true, convert(x) { return x; }, validator(x) { return false; } } }; Object.assign(localForm, basicForm); let form = new Form(localForm); form.fakeFill(); let res = form.fill({e4 : ''}); form.isValid(); expect(res.e1.error).equal(true, 'should mark error'); expect(res.e2.error).equal(false, 'should not mark error'); expect(res.e3.error).equal(true, 'should mark error'); expect(res.e4.error).equal(true, 'should mark error'); done(); }); }); });