Skip to content
Snippets Groups Projects
formTEST.js 2.1 KiB
Newer Older
clemo's avatar
clemo committed
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();
    });
  });
});