hyperform
Version:
Capture form validation back from the browser
34 lines (27 loc) • 1.02 kB
JavaScript
import test from 'ava';
import get_next_valid from '../../../src/tools/get_next_valid';
function get_dummy(value, step=1, min=0, max=100) {
var dummy = document.createElement('input');
dummy.value = value;
dummy.setAttribute('value', value);
dummy.setAttribute('step', step);
dummy.setAttribute('min', min);
dummy.setAttribute('max', max);
return dummy;
}
test('get_next_valid simple case', t => {
t.deepEqual(get_next_valid(get_dummy(.5, 1, 0, 1)), [0, 1]);
t.deepEqual(get_next_valid(get_dummy(5, 1, 0, 10)), [5, 6]);
t.deepEqual(get_next_valid(get_dummy(5.3, 1, 0, 10)), [5, 6]);
});
test('get_next_valid negative min', t => {
t.deepEqual(get_next_valid(get_dummy(-2.3, 1, -3)), [-3, -2]);
});
test('get_next_valid fractional step', t => {
t.deepEqual(get_next_valid(get_dummy(0.3, .2)), [.2, .4]);
});
test('get_next_valid below min, beyond max', t => {
t.deepEqual(get_next_valid(get_dummy(-3)), [null, 0]);
t.deepEqual(get_next_valid(get_dummy(103)), [100, null]);
});
;