lucid-ui
Version:
A UI component library from AppNexus.
66 lines (65 loc) • 2.72 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 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'));
});
});
});