lion/packages/validate/test/NumberValidators.test.js
Thijs Louisse 6e81b55e3c feat(validate): new validation api, async validation and more
Co-authored-by: Thomas Allmer <Thomas.Allmer@ing.com>
2019-11-15 16:57:58 +01:00

66 lines
1.8 KiB
JavaScript

import { expect } from '@open-wc/testing';
import {
IsNumber,
MinNumber,
MaxNumber,
MinMaxNumber,
} from '../src/validators/NumberValidators.js';
describe('Number Validation', () => {
it('provides new IsNumber() to allow only numbers', () => {
let isEnabled;
const validator = new IsNumber();
expect(validator.name).to.equal('IsNumber');
isEnabled = validator.execute(4);
expect(isEnabled).to.be.false;
isEnabled = validator.execute(NaN);
expect(isEnabled).to.be.true;
isEnabled = validator.execute('4');
expect(isEnabled).to.be.true;
});
it('provides new MinNumber(x) to allow only numbers longer then min', () => {
let isEnabled;
const validator = new MinNumber(3);
expect(validator.name).to.equal('MinNumber');
isEnabled = validator.execute(3);
expect(isEnabled).to.be.false;
isEnabled = validator.execute(2);
expect(isEnabled).to.be.true;
});
it('provides new MaxNumber(x) to allow only number shorter then max', () => {
let isEnabled;
const validator = new MaxNumber(3);
expect(validator.name).to.equal('MaxNumber');
isEnabled = validator.execute(3);
expect(isEnabled).to.be.false;
isEnabled = validator.execute(4);
expect(isEnabled).to.be.true;
});
it('provides new MinMaxNumber({ min: x, max: y}) to allow only numbers between min and max', () => {
let isEnabled;
const validator = new MinMaxNumber({ min: 2, max: 4 });
expect(validator.name).to.equal('MinMaxNumber');
isEnabled = validator.execute(2);
expect(isEnabled).to.be.false;
isEnabled = validator.execute(4);
expect(isEnabled).to.be.false;
isEnabled = validator.execute(1);
expect(isEnabled).to.be.true;
isEnabled = validator.execute(5);
expect(isEnabled).to.be.true;
});
});