react-toolbox/lib/date_picker/__test__/index.spec.js

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;
}
});
});