@roo-ui/components
Version:
113 lines (100 loc) • 4.1 kB
JavaScript
var _react = _interopRequireDefault(require("react"));
var _themes = require("@roo-ui/themes");
var _testUtils = require("@roo-ui/test-utils");
var _add_days = _interopRequireDefault(require("date-fns/add_days"));
var _ = _interopRequireDefault(require("."));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
describe('<CalendarDays />', function () {
var wrapper;
var startDate = new Date(2018, 7, 1, 10, 33, 30, 0);
var props = {
monthName: 'Jul',
month: 7,
year: 2018,
stacked: true,
weekdayNames: ['S', 'M', 'T', 'W', 'T', 'F', 'S'],
weeks: [[{
date: startDate
}, {
date: (0, _add_days.default)(startDate, 1)
}, {
date: (0, _add_days.default)(startDate, 2)
}, {
date: (0, _add_days.default)(startDate, 3)
}, {
date: (0, _add_days.default)(startDate, 4)
}, {
date: (0, _add_days.default)(startDate, 5)
}, {
date: (0, _add_days.default)(startDate, 7)
}], [{
date: (0, _add_days.default)(startDate, 7)
}, {
date: (0, _add_days.default)(startDate, 8)
}, {
date: (0, _add_days.default)(startDate, 9)
}, {
date: (0, _add_days.default)(startDate, 10)
}, {
date: (0, _add_days.default)(startDate, 11)
}, {
date: (0, _add_days.default)(startDate, 12)
}, {
date: (0, _add_days.default)(startDate, 14)
}]],
getDateProps: jest.fn
};
var setup = function setup() {
var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
var newProps = _objectSpread({}, props, params);
wrapper = (0, _testUtils.shallowWithTheme)(_react.default.createElement(_.default, newProps), _themes.qantas);
};
it('renders correctly', function () {
setup();
expect(wrapper).toMatchSnapshot();
});
describe('<CalendarDay />', function () {
describe('highlighted', function () {
describe('when isInRange is false', function () {
it('props.highlighted is false', function () {
setup({
isInRange: function isInRange() {
return false;
}
});
expect(wrapper.find('CalendarDay').first().prop('highlighted')).toEqual(false);
});
});
describe('when isInRange is true', function () {
it('props.highlighted is true', function () {
setup({
isInRange: function isInRange() {
return true;
}
});
expect(wrapper.find('CalendarDay').first().prop('highlighted')).toEqual(true);
});
});
});
describe('disabled', function () {
describe('when disabled dates are provided', function () {
beforeEach(function () {
return setup({
disabledDates: [startDate, (0, _add_days.default)(startDate, 1)]
});
});
it('provided dates are disabled', function () {
expect(wrapper.find('CalendarDay').at(0).prop('disabled')).toEqual(true);
expect(wrapper.find('CalendarDay').at(1).prop('disabled')).toEqual(true);
});
it('other dates are not disabled', function () {
expect(wrapper.find('CalendarDay').at(2).prop('disabled')).toEqual(false);
expect(wrapper.find('CalendarDay').at(3).prop('disabled')).toEqual(false);
});
});
});
});
});
;