86 lines
3.8 KiB
JavaScript
86 lines
3.8 KiB
JavaScript
"use strict";
|
|
|
|
var _react = _interopRequireDefault(require("react"));
|
|
var _dateFns = require("date-fns");
|
|
var _DateRange = _interopRequireDefault(require("../DateRange"));
|
|
var _reactTestRenderer = _interopRequireDefault(require("react-test-renderer"));
|
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
let testRenderer = null;
|
|
let instance = null;
|
|
const endDate = new Date();
|
|
const startDate = (0, _dateFns.subDays)(endDate, 7);
|
|
const commonProps = {
|
|
ranges: [{
|
|
startDate,
|
|
endDate,
|
|
key: 'selection'
|
|
}],
|
|
onChange: () => {},
|
|
moveRangeOnFirstSelection: false
|
|
};
|
|
const compareRanges = (newRange, assertionRange) => {
|
|
['startDate', 'endDate'].forEach(key => {
|
|
if (!newRange[key] || !assertionRange[key]) {
|
|
return expect(newRange[key]).toEqual(assertionRange[key]);
|
|
}
|
|
return expect((0, _dateFns.isSameDay)(newRange[key], assertionRange[key])).toEqual(true);
|
|
});
|
|
};
|
|
beforeEach(() => {
|
|
testRenderer = _reactTestRenderer.default.create( /*#__PURE__*/_react.default.createElement(_DateRange.default, commonProps));
|
|
instance = testRenderer.getInstance();
|
|
});
|
|
describe('DateRange', () => {
|
|
test('Should resolve', () => {
|
|
expect(_DateRange.default).toEqual(expect.anything());
|
|
});
|
|
test('calculate new selection by resetting end date', () => {
|
|
const methodResult = instance.calcNewSelection((0, _dateFns.subDays)(endDate, 10), true);
|
|
compareRanges(methodResult.range, {
|
|
startDate: (0, _dateFns.subDays)(endDate, 10),
|
|
endDate: (0, _dateFns.subDays)(endDate, 10)
|
|
});
|
|
});
|
|
test('calculate new selection by resetting end date if start date is not before', () => {
|
|
const methodResult = instance.calcNewSelection((0, _dateFns.addDays)(endDate, 2), true);
|
|
compareRanges(methodResult.range, {
|
|
startDate: (0, _dateFns.addDays)(endDate, 2),
|
|
endDate: (0, _dateFns.addDays)(endDate, 2)
|
|
});
|
|
});
|
|
test('calculate new selection based on moveRangeOnFirstSelection prop', () => {
|
|
testRenderer.update( /*#__PURE__*/_react.default.createElement(_DateRange.default, _extends({}, commonProps, {
|
|
moveRangeOnFirstSelection: true
|
|
})));
|
|
const methodResult = instance.calcNewSelection((0, _dateFns.subDays)(endDate, 10), true);
|
|
compareRanges(methodResult.range, {
|
|
startDate: (0, _dateFns.subDays)(endDate, 10),
|
|
endDate: (0, _dateFns.subDays)(endDate, 3)
|
|
});
|
|
});
|
|
test('calculate new selection by retaining end date, based on retainEndDateOnFirstSelection prop', () => {
|
|
testRenderer.update( /*#__PURE__*/_react.default.createElement(_DateRange.default, _extends({}, commonProps, {
|
|
retainEndDateOnFirstSelection: true
|
|
})));
|
|
const methodResult = instance.calcNewSelection((0, _dateFns.subDays)(endDate, 10), true);
|
|
compareRanges(methodResult.range, {
|
|
startDate: (0, _dateFns.subDays)(endDate, 10),
|
|
endDate
|
|
});
|
|
});
|
|
test('calculate new selection by retaining the unset end date, based on retainEndDateOnFirstSelection prop', () => {
|
|
testRenderer.update( /*#__PURE__*/_react.default.createElement(_DateRange.default, _extends({}, commonProps, {
|
|
ranges: [{
|
|
...commonProps.ranges[0],
|
|
endDate: null
|
|
}],
|
|
retainEndDateOnFirstSelection: true
|
|
})));
|
|
const methodResult = instance.calcNewSelection((0, _dateFns.subDays)(endDate, 10), true);
|
|
compareRanges(methodResult.range, {
|
|
startDate: (0, _dateFns.subDays)(endDate, 10),
|
|
endDate: null
|
|
});
|
|
});
|
|
}); |