UNPKG

@roo-ui/components

Version:

113 lines (100 loc) 4.1 kB
"use strict"; 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); }); }); }); }); });