@roo-ui/components
Version:
70 lines • 2.27 kB
JavaScript
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 CalendarMonth from '.';
describe('<CalendarMonth />', 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,
isInRange: jest.fn,
onMouseEnterOfDay: jest.fn
};
beforeEach(function () {
wrapper = shallowWithTheme(React.createElement(CalendarMonth, props, "Days"), theme);
});
it('renders correctly', function () {
expect(wrapper).toMatchSnapshot();
});
describe('<CalendarWeekdays />', function () {
it('renders CalendarWeekdays', function () {
expect(wrapper.find('CalendarWeekdays').prop('month')).toEqual(props.month);
expect(wrapper.find('CalendarWeekdays').prop('year')).toEqual(props.year);
expect(wrapper.find('CalendarWeekdays').prop('weekdayNames')).toEqual(props.weekdayNames);
});
});
describe('<CalendarDays />', function () {
it('passes the correct props', function () {
expect(wrapper.find('CalendarDays').prop('month')).toEqual(props.month);
expect(wrapper.find('CalendarDays').prop('year')).toEqual(props.year);
expect(wrapper.find('CalendarDays').prop('weeks')).toEqual(props.weeks);
expect(wrapper.find('CalendarDays').prop('isInRange')).toEqual(props.isInRange);
expect(wrapper.find('CalendarDays').prop('onMouseEnterOfDay')).toEqual(props.onMouseEnterOfDay);
});
});
});