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