2017-01-26 20:05:32 +03:00
|
|
|
/* eslint-disable */
|
2016-07-21 17:47:03 +03:00
|
|
|
import expect from 'expect';
|
2017-01-05 04:42:18 +03:00
|
|
|
import theme from '../theme.css';
|
2016-07-21 17:47:03 +03:00
|
|
|
import { DatePickerDialog } from '../DatePicker';
|
|
|
|
import utils from '../../utils/testing';
|
|
|
|
|
2017-01-26 20:05:32 +03:00
|
|
|
describe('DatePickerDialog', () => {
|
|
|
|
describe('#on mount', () => {
|
|
|
|
it('passes value through to calendar if no maxDate/minDate specified', () => {
|
2016-07-21 17:47:03 +03:00
|
|
|
const value = new Date(2016, 1, 1);
|
2017-01-26 20:05:32 +03:00
|
|
|
const wrapper = utils.shallowRenderComponent(DatePickerDialog, { theme, value });
|
2016-07-21 17:47:03 +03:00
|
|
|
expect(getDatePassedToCalendar(wrapper)).toBe(value);
|
|
|
|
});
|
|
|
|
|
2017-01-26 20:05:32 +03:00
|
|
|
describe('when minDate but not maxDate specified', () => {
|
2016-07-21 17:47:03 +03:00
|
|
|
const minDate = new Date(2016, 1, 2);
|
|
|
|
|
2017-01-26 20:05:32 +03:00
|
|
|
it('passes through a value after minDate', () => {
|
2016-07-21 17:47:03 +03:00
|
|
|
const value = new Date(2016, 1, 3);
|
2017-01-26 20:05:32 +03:00
|
|
|
const wrapper = utils.shallowRenderComponent(DatePickerDialog, { theme, value, minDate });
|
2016-07-21 17:47:03 +03:00
|
|
|
expect(getDatePassedToCalendar(wrapper)).toBe(value);
|
|
|
|
});
|
|
|
|
|
2017-01-26 20:05:32 +03:00
|
|
|
it('sanitises a value before minDate to minDate', () => {
|
2016-07-21 17:47:03 +03:00
|
|
|
const wrapper = utils.shallowRenderComponent(DatePickerDialog, {
|
2017-01-26 20:05:32 +03:00
|
|
|
theme, value: new Date(2016, 1, 1), minDate,
|
2016-07-21 17:47:03 +03:00
|
|
|
});
|
|
|
|
expect(getDatePassedToCalendar(wrapper)).toBe(minDate);
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
2017-01-26 20:05:32 +03:00
|
|
|
describe('when maxDate but not minDate specified', () => {
|
2016-07-21 17:47:03 +03:00
|
|
|
const maxDate = new Date(2016, 1, 2);
|
|
|
|
|
2017-01-26 20:05:32 +03:00
|
|
|
it('passes through a value before maxDate', () => {
|
2016-07-21 17:47:03 +03:00
|
|
|
const value = new Date(2016, 1, 1);
|
2017-01-26 20:05:32 +03:00
|
|
|
const wrapper = utils.shallowRenderComponent(DatePickerDialog, { theme, value, maxDate });
|
2016-07-21 17:47:03 +03:00
|
|
|
expect(getDatePassedToCalendar(wrapper)).toBe(value);
|
|
|
|
});
|
|
|
|
|
2017-01-26 20:05:32 +03:00
|
|
|
it('sanitises a value after maxDate to maxDate', () => {
|
2016-07-21 17:47:03 +03:00
|
|
|
const wrapper = utils.shallowRenderComponent(DatePickerDialog, {
|
2017-01-26 20:05:32 +03:00
|
|
|
theme, value: new Date(2016, 1, 3), maxDate,
|
2016-07-21 17:47:03 +03:00
|
|
|
});
|
|
|
|
expect(getDatePassedToCalendar(wrapper)).toBe(maxDate);
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
2017-01-26 20:05:32 +03:00
|
|
|
describe('if both minDate and maxDate are set', () => {
|
2016-07-21 17:47:03 +03:00
|
|
|
const minDate = new Date(2016, 1, 2);
|
|
|
|
const maxDate = new Date(2016, 1, 4);
|
|
|
|
|
2017-01-26 20:05:32 +03:00
|
|
|
it('sanitises value to minDate if value is before minDate', () => {
|
2016-07-21 17:47:03 +03:00
|
|
|
const wrapper = utils.shallowRenderComponent(DatePickerDialog, {
|
|
|
|
theme,
|
|
|
|
value: new Date(2016, 1, 1),
|
|
|
|
minDate,
|
2017-01-26 20:05:32 +03:00
|
|
|
maxDate,
|
2016-07-21 17:47:03 +03:00
|
|
|
});
|
|
|
|
expect(getDatePassedToCalendar(wrapper)).toBe(minDate);
|
|
|
|
});
|
|
|
|
|
2017-01-26 20:05:32 +03:00
|
|
|
it('sanitises value to maxDate if value is after maxDate', () => {
|
2016-07-21 17:47:03 +03:00
|
|
|
const wrapper = utils.shallowRenderComponent(DatePickerDialog, {
|
|
|
|
theme,
|
|
|
|
value: new Date(2016, 1, 5),
|
|
|
|
minDate,
|
2017-01-26 20:05:32 +03:00
|
|
|
maxDate,
|
2016-07-21 17:47:03 +03:00
|
|
|
});
|
|
|
|
expect(getDatePassedToCalendar(wrapper)).toBe(maxDate);
|
|
|
|
});
|
|
|
|
|
2017-01-26 20:05:32 +03:00
|
|
|
it('doesn\'t sanitise when value is between maxDate/minDate', () => {
|
2016-07-21 17:47:03 +03:00
|
|
|
const value = new Date(2016, 1, 3);
|
2017-01-26 20:05:32 +03:00
|
|
|
const wrapper = utils.shallowRenderComponent(DatePickerDialog, { theme, value, minDate, maxDate });
|
2016-07-21 17:47:03 +03:00
|
|
|
expect(getDatePassedToCalendar(wrapper)).toBe(value);
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
2017-01-26 20:05:32 +03:00
|
|
|
function getDatePassedToCalendar(wrapper) {
|
2016-07-21 17:47:03 +03:00
|
|
|
return wrapper.props.children[1].props.children.props.selectedDate;
|
|
|
|
}
|
|
|
|
});
|
|
|
|
});
|