UNPKG

lucid-ui

Version:

A UI component library from AppNexus.

66 lines (65 loc) 2.72 kB
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 SingleSelect from '../SingleSelect/SingleSelect'; import { MeridiemType } from './TimeSelect'; import TimeSelectMeridiem from './TimeSelectMeridiem'; describe('TimeSelectMeridiem', function () { var props = { hour: 3, meridiem: MeridiemType.AM, time: new Date(2020, 10, 3), isDisabled: false, onChange: jest.fn() }; var component; beforeEach(function () { component = shallow( /*#__PURE__*/React.createElement(TimeSelectMeridiem, props)); }); it('should render SingleSelect with correct props', function () { expect(component.find(SingleSelect).props()).toEqual({ className: 'lucid-TimeSelect-meridiem', isSelectionHighlighted: false, showIcon: false, selectedIndex: 0, isInvisible: true, onSelect: expect.any(Function), isDisabled: props.isDisabled, hasReset: false, children: expect.anything() }); }); describe('when MeridiemType is AM', function () { it('should select index 0 on SingleSelect', function () { expect(component.find(SingleSelect).props().selectedIndex).toEqual(0); }); }); describe('when MeridiemType is PM', function () { it('should select index 1 on SingleSelect', function () { component = shallow( /*#__PURE__*/React.createElement(TimeSelectMeridiem, _extends({}, props, { meridiem: MeridiemType.PM }))); expect(component.find(SingleSelect).props().selectedIndex).toEqual(1); }); }); describe('when changing AM to PM', function () { it('should return correct new time', function () { props.onChange.mockReset(); component = shallow( /*#__PURE__*/React.createElement(TimeSelectMeridiem, _extends({}, props, { meridiem: MeridiemType.AM }))); component.find(SingleSelect).props().onSelect(1); expect(props.onChange).toBeCalledWith(new Date('2020-11-03T15:00:00')); }); }); describe('when changing PM to AM', function () { it('should return correct new time', function () { props.onChange.mockReset(); component = shallow( /*#__PURE__*/React.createElement(TimeSelectMeridiem, _extends({}, props, { meridiem: MeridiemType.PM }))); component.find(SingleSelect).props().onSelect(0); expect(props.onChange).toBeCalledWith(new Date('2020-11-03T03:00:00')); }); }); });