lucid-ui
Version:
A UI component library from AppNexus.
58 lines (57 loc) • 2.19 kB
JavaScript
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
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', function () {
var props = {
time: new Date('2020-11-03T17:30:00'),
//YYYY-MM-DDTHH:MM:SS
is24HourClock: false,
onChange: jest.fn(),
isDisabled: false
};
var component;
beforeEach(function () {
component = shallow( /*#__PURE__*/React.createElement(TimeSelect, props));
});
it('should render TimeSelectHour with correct props', function () {
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', function () {
expect(component.find(TimeSelectMinute).props()).toEqual({
minute: 30,
time: props.time,
isDisabled: props.isDisabled,
onChange: props.onChange
});
});
describe('when is not is24HourClock', function () {
it('should NOT render TimeSelectMeridiem', function () {
component = shallow( /*#__PURE__*/React.createElement(TimeSelect, _extends({}, props, {
is24HourClock: true
})));
expect(component.find(TimeSelectMeridiem)).toHaveLength(0);
});
});
describe('when is is24HourClock', function () {
it('should render TimeSelectMeridiem with correct props', function () {
expect(component.find(TimeSelectMeridiem).props()).toEqual({
hour: 5,
meridiem: MeridiemType.PM,
time: props.time,
isDisabled: props.isDisabled,
onChange: props.onChange
});
});
});
});