react-form-validator-components
Version:
Components for react-form-validator-core
77 lines (67 loc) • 2.24 kB
JavaScript
import React from 'react';
import renderer from 'react-test-renderer';
import MomentUtils from '@date-io/moment';
import moment from 'moment';
import { shallow } from 'enzyme';
import { MuiPickersUtilsProvider, ValidatorForm, DateValidator } from '../src/index.js';
describe('DateValidator', () => {
test('renders', () => {
const component = renderer.create(
<MuiPickersUtilsProvider utils={MomentUtils} locale="en">
<ValidatorForm onSubmit={() => null}>
<DateValidator
value={moment('2019-01-01').toDate()}
/>
</ValidatorForm>
</MuiPickersUtilsProvider>
);
expect(component).toMatchSnapshot();
});
test('sets value to date', () => {
const wrapper = shallow(
<MuiPickersUtilsProvider utils={MomentUtils} locale="en">
<ValidatorForm onSubmit={() => null}>
<DateValidator
value={moment('2019-01-01').toDate()}
/>
</ValidatorForm>
</MuiPickersUtilsProvider>
);
expect(wrapper.find(DateValidator).dive().state('value')).toEqual(moment('2019-01-01').toDate());
});
test('calls onChange if value is false and defaultValue is valid', done => {
function onChange(data) {
expect(data).toEqual(moment('2019-01-01').toDate());
done();
}
const wrapper = shallow(
<MuiPickersUtilsProvider utils={MomentUtils}>
<ValidatorForm onSubmit={() => null}>
<DateValidator
value={null}
defaultValue={moment('2019-01-01').toDate()}
onChange={onChange}
/>
</ValidatorForm>
</MuiPickersUtilsProvider>
);
wrapper.find(DateValidator).dive();
});
test('sets default value', done => {
const wrapper = shallow(
<MuiPickersUtilsProvider utils={MomentUtils}>
<ValidatorForm onSubmit={() => null}>
<DateValidator
value={null}
defaultValue={moment('2019-01-01').toDate()}
/>
</ValidatorForm>
</MuiPickersUtilsProvider>
);
const text = wrapper.find(DateValidator).dive();
setTimeout(() => {
expect(text.state('value')).toEqual(moment('2019-01-01').toDate());
done();
}, 10);
});
});