UNPKG

hyperform

Version:

Capture form validation back from the browser

69 lines (59 loc) 1.6 kB
'use strict'; import test from 'ava'; import valueAsDate from '../../../src/polyfills/valueAsDate'; function get(attributes) { var el = document.createElement('input'); for (let key in attributes) { el.setAttribute(key, attributes[key]); if (key === 'value') { el[key] = attributes[key]; } } return el; } test('valueAsDate getter (month)', t => { t.is(+valueAsDate(get({ type: 'month', value: '2015-01', })), +(new Date(Date.UTC(2015, 0, 1)))); }); test('valueAsDate setter (month)', t => { let el = get({ type: 'month', value: '', }); valueAsDate(el, new Date(Date.UTC(2015, 0, 1))); t.is(+valueAsDate(el), +(new Date(Date.UTC(2015, 0, 1)))); }); test('valueAsDate getter (week)', t => { t.is(+valueAsDate(get({ type: 'week', value: '2015-W51', })), +(new Date(Date.UTC(2015, 11, 14)))); }); test('valueAsDate setter (week)', t => { let el = get({ type: 'week', value: '', }); valueAsDate(el, new Date(Date.UTC(2015, 11, 14))); t.is(+valueAsDate(el), +(new Date(Date.UTC(2015, 11, 14)))); }); test('valueAsDate setter with wrong type', t => { t.throws(() => valueAsDate(get({ type: 'date', value: '', }), '2015-01-01'), { instanceOf: window.DOMException }); }); test('valueAsDate getter for non-applicable type', t => { t.is(valueAsDate(get({ type: 'text', value: '2015-01-01', })), null); }); test('valueAsDate setter for non-applicable type', t => { t.throws(() => valueAsDate(get({ type: 'text', value: '', }), new Date(0)), { instanceOf: window.DOMException }); });