import { shallow } from 'enzyme'; import React from 'react'; import TimeSelect, { MeridiemType } from './TimeSelect'; import TimeSelectHour from './TimeSelectHour'; import TimeSelectMeridiem from './TimeSelectMeridiem'; import TimeSelectMinute from './TimeSelectMinute'; describe('TimeSelect', () => { const props = { time: new Date('2020-11-03T17:30:00'), //YYYY-MM-DDTHH:MM:SS is24HourClock: false, onChange: jest.fn(), isDisabled: false, }; let component: any; beforeEach(() => { component = shallow(); }); it('should render TimeSelectHour with correct props', () => { expect(component.find(TimeSelectHour).props()).toEqual({ hour: 5, time: props.time, is24HourClock: props.is24HourClock, isAM: false, isDisabled: props.isDisabled, onChange: props.onChange, }); }); it('should render TimeSelectMinute with correct props', () => { expect(component.find(TimeSelectMinute).props()).toEqual({ minute: 30, time: props.time, isDisabled: props.isDisabled, onChange: props.onChange, }); }); describe('when is not is24HourClock', () => { it('should NOT render TimeSelectMeridiem', () => { component = shallow(); expect(component.find(TimeSelectMeridiem)).toHaveLength(0); }); }); describe('when is is24HourClock', () => { it('should render TimeSelectMeridiem with correct props', () => { expect(component.find(TimeSelectMeridiem).props()).toEqual({ hour: 5, meridiem: MeridiemType.PM, time: props.time, isDisabled: props.isDisabled, onChange: props.onChange, }); }); }); });