96 lines
3.9 KiB
JavaScript
96 lines
3.9 KiB
JavaScript
|
'use strict';
|
||
|
|
||
|
var _expect = require('expect');
|
||
|
|
||
|
var _expect2 = _interopRequireDefault(_expect);
|
||
|
|
||
|
var _theme = require('../theme.scss');
|
||
|
|
||
|
var _theme2 = _interopRequireDefault(_theme);
|
||
|
|
||
|
var _DatePicker = require('../DatePicker');
|
||
|
|
||
|
var _testing = require('../../utils/testing');
|
||
|
|
||
|
var _testing2 = _interopRequireDefault(_testing);
|
||
|
|
||
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||
|
|
||
|
describe('DatePickerDialog', function () {
|
||
|
describe('#on mount', function () {
|
||
|
it('passes value through to calendar if no maxDate/minDate specified', function () {
|
||
|
var value = new Date(2016, 1, 1);
|
||
|
var wrapper = _testing2.default.shallowRenderComponent(_DatePicker.DatePickerDialog, { theme: _theme2.default, value: value });
|
||
|
(0, _expect2.default)(getDatePassedToCalendar(wrapper)).toBe(value);
|
||
|
});
|
||
|
|
||
|
describe('when minDate but not maxDate specified', function () {
|
||
|
var minDate = new Date(2016, 1, 2);
|
||
|
|
||
|
it('passes through a value after minDate', function () {
|
||
|
var value = new Date(2016, 1, 3);
|
||
|
var wrapper = _testing2.default.shallowRenderComponent(_DatePicker.DatePickerDialog, { theme: _theme2.default, value: value, minDate: minDate });
|
||
|
(0, _expect2.default)(getDatePassedToCalendar(wrapper)).toBe(value);
|
||
|
});
|
||
|
|
||
|
it('sanitises a value before minDate to minDate', function () {
|
||
|
var wrapper = _testing2.default.shallowRenderComponent(_DatePicker.DatePickerDialog, {
|
||
|
theme: _theme2.default, value: new Date(2016, 1, 1), minDate: minDate
|
||
|
});
|
||
|
(0, _expect2.default)(getDatePassedToCalendar(wrapper)).toBe(minDate);
|
||
|
});
|
||
|
});
|
||
|
|
||
|
describe('when maxDate but not minDate specified', function () {
|
||
|
var maxDate = new Date(2016, 1, 2);
|
||
|
|
||
|
it('passes through a value before maxDate', function () {
|
||
|
var value = new Date(2016, 1, 1);
|
||
|
var wrapper = _testing2.default.shallowRenderComponent(_DatePicker.DatePickerDialog, { theme: _theme2.default, value: value, maxDate: maxDate });
|
||
|
(0, _expect2.default)(getDatePassedToCalendar(wrapper)).toBe(value);
|
||
|
});
|
||
|
|
||
|
it('sanitises a value after maxDate to maxDate', function () {
|
||
|
var wrapper = _testing2.default.shallowRenderComponent(_DatePicker.DatePickerDialog, {
|
||
|
theme: _theme2.default, value: new Date(2016, 1, 3), maxDate: maxDate
|
||
|
});
|
||
|
(0, _expect2.default)(getDatePassedToCalendar(wrapper)).toBe(maxDate);
|
||
|
});
|
||
|
});
|
||
|
|
||
|
describe('if both minDate and maxDate are set', function () {
|
||
|
var minDate = new Date(2016, 1, 2);
|
||
|
var maxDate = new Date(2016, 1, 4);
|
||
|
|
||
|
it('sanitises value to minDate if value is before minDate', function () {
|
||
|
var wrapper = _testing2.default.shallowRenderComponent(_DatePicker.DatePickerDialog, {
|
||
|
theme: _theme2.default,
|
||
|
value: new Date(2016, 1, 1),
|
||
|
minDate: minDate,
|
||
|
maxDate: maxDate
|
||
|
});
|
||
|
(0, _expect2.default)(getDatePassedToCalendar(wrapper)).toBe(minDate);
|
||
|
});
|
||
|
|
||
|
it('sanitises value to maxDate if value is after maxDate', function () {
|
||
|
var wrapper = _testing2.default.shallowRenderComponent(_DatePicker.DatePickerDialog, {
|
||
|
theme: _theme2.default,
|
||
|
value: new Date(2016, 1, 5),
|
||
|
minDate: minDate,
|
||
|
maxDate: maxDate
|
||
|
});
|
||
|
(0, _expect2.default)(getDatePassedToCalendar(wrapper)).toBe(maxDate);
|
||
|
});
|
||
|
|
||
|
it('doesn\'t sanitise when value is between maxDate/minDate', function () {
|
||
|
var value = new Date(2016, 1, 3);
|
||
|
var wrapper = _testing2.default.shallowRenderComponent(_DatePicker.DatePickerDialog, { theme: _theme2.default, value: value, minDate: minDate, maxDate: maxDate });
|
||
|
(0, _expect2.default)(getDatePassedToCalendar(wrapper)).toBe(value);
|
||
|
});
|
||
|
});
|
||
|
|
||
|
function getDatePassedToCalendar(wrapper) {
|
||
|
return wrapper.props.children[1].props.children.props.selectedDate;
|
||
|
}
|
||
|
});
|
||
|
});
|