UNPKG

lucid-ui

Version:

A UI component library from AppNexus.

66 lines (65 loc) 2.82 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 TimeSelectInput from './TimeSelectInput'; import TimeSelectMinute from './TimeSelectMinute'; describe('TimeSelectMinute', function () { var props = { minute: 29, time: new Date(2020, 10, 3), isDisabled: false, onChange: jest.fn() }; var component; beforeEach(function () { component = shallow( /*#__PURE__*/React.createElement(TimeSelectMinute, props)); }); it('should render TimeSelectInput component with correct props', function () { expect(component.find(TimeSelectInput).props()).toEqual({ value: props.minute, name: 'Minute', onChange: expect.any(Function), disabled: props.isDisabled, step: 15 }); }); describe('when onChange prop is called on TimeSelectInput', function () { beforeEach(function () { props.onChange.mockReset(); }); describe('and next value is under 0', function () { it('should set correct minute', function () { component.find(TimeSelectInput).props().onChange('-20'); expect(props.onChange).toBeCalledWith(new Date('2020-11-02T23:45:00')); }); }); describe('and next value is over 59', function () { it('should set correct minute', function () { component.find(TimeSelectInput).props().onChange('60'); expect(props.onChange).toBeCalledWith(new Date('2020-11-03T01:00:00')); }); }); describe('and next value is 15 mins more than prior hour', function () { it('should set correct minute', function () { component = shallow( /*#__PURE__*/React.createElement(TimeSelectMinute, _extends({}, props, { minute: 20 }))); component.find(TimeSelectInput).props().onChange('35'); expect(props.onChange).toBeCalledWith(new Date('2020-11-03T00:30:00')); }); }); describe('and next value is 15 mins less than prior hour', function () { it('should set correct minute', function () { component = shallow( /*#__PURE__*/React.createElement(TimeSelectMinute, _extends({}, props, { minute: 20 }))); component.find(TimeSelectInput).props().onChange('5'); expect(props.onChange).toBeCalledWith(new Date('2020-11-03T00:00:00')); }); }); it('should set correct minute', function () { component.find(TimeSelectInput).props().onChange('34'); expect(props.onChange).toBeCalledWith(new Date('2020-11-03T00:34:00')); }); }); });