UNPKG

@roo-ui/components

Version:

104 lines (98 loc) 3.69 kB
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; } import React from 'react'; import { qantas as theme } from '@roo-ui/themes'; import { shallowWithTheme } from '@roo-ui/test-utils'; import addDays from 'date-fns/add_days'; import CalendarDays from '.'; 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: addDays(startDate, 1) }, { date: addDays(startDate, 2) }, { date: addDays(startDate, 3) }, { date: addDays(startDate, 4) }, { date: addDays(startDate, 5) }, { date: addDays(startDate, 7) }], [{ date: addDays(startDate, 7) }, { date: addDays(startDate, 8) }, { date: addDays(startDate, 9) }, { date: addDays(startDate, 10) }, { date: addDays(startDate, 11) }, { date: addDays(startDate, 12) }, { date: addDays(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 = shallowWithTheme(React.createElement(CalendarDays, newProps), theme); }; 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, addDays(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); }); }); }); }); });