@wix/design-system
Version:
@wix/design-system
4,059 lines • 162 kB
JavaScript
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
var _react = _interopRequireDefault(require("react"));
var _react2 = require("../../utils/test-utils/react");
var _unit = require("../../utils/test-utils/unit");
var _TimeInputPrivateUni = require("./TimeInput.private.uni.driver");
var _TimeInput = require("../TimeInput");
var _TimeInputUtils = require("../TimeInputUtils");
var _WixStyleReactEnvironmentProvider = require("../../WixStyleReactEnvironmentProvider");
var _InputSt = require("../../Input/Input.st.css");
var _jsxFileName = "/home/builduser/work/57e038ea7326c1ec/packages/wix-design-system/dist/cjs/TimeInput/test/TimeInput.spec.jsx",
_this = void 0;
function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2["default"])(o), (0, _possibleConstructorReturn2["default"])(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2["default"])(t).constructor) : o.apply(t, e)); }
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
function _regenerator() { /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ var e, t, r = "function" == typeof Symbol ? Symbol : {}, n = r.iterator || "@@iterator", o = r.toStringTag || "@@toStringTag"; function i(r, n, o, i) { var c = n && n.prototype instanceof Generator ? n : Generator, u = Object.create(c.prototype); return _regeneratorDefine2(u, "_invoke", function (r, n, o) { var i, c, u, f = 0, p = o || [], y = !1, G = { p: 0, n: 0, v: e, a: d, f: d.bind(e, 4), d: function d(t, r) { return i = t, c = 0, u = e, G.n = r, a; } }; function d(r, n) { for (c = r, u = n, t = 0; !y && f && !o && t < p.length; t++) { var o, i = p[t], d = G.p, l = i[2]; r > 3 ? (o = l === n) && (u = i[(c = i[4]) ? 5 : (c = 3, 3)], i[4] = i[5] = e) : i[0] <= d && ((o = r < 2 && d < i[1]) ? (c = 0, G.v = n, G.n = i[1]) : d < l && (o = r < 3 || i[0] > n || n > l) && (i[4] = r, i[5] = n, G.n = l, c = 0)); } if (o || r > 1) return a; throw y = !0, n; } return function (o, p, l) { if (f > 1) throw TypeError("Generator is already running"); for (y && 1 === p && d(p, l), c = p, u = l; (t = c < 2 ? e : u) || !y;) { i || (c ? c < 3 ? (c > 1 && (G.n = -1), d(c, u)) : G.n = u : G.v = u); try { if (f = 2, i) { if (c || (o = "next"), t = i[o]) { if (!(t = t.call(i, u))) throw TypeError("iterator result is not an object"); if (!t.done) return t; u = t.value, c < 2 && (c = 0); } else 1 === c && (t = i["return"]) && t.call(i), c < 2 && (u = TypeError("The iterator does not provide a '" + o + "' method"), c = 1); i = e; } else if ((t = (y = G.n < 0) ? u : r.call(n, G)) !== a) break; } catch (t) { i = e, c = 1, u = t; } finally { f = 1; } } return { value: t, done: y }; }; }(r, o, i), !0), u; } var a = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} t = Object.getPrototypeOf; var c = [][n] ? t(t([][n]())) : (_regeneratorDefine2(t = {}, n, function () { return this; }), t), u = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(c); function f(e) { return Object.setPrototypeOf ? Object.setPrototypeOf(e, GeneratorFunctionPrototype) : (e.__proto__ = GeneratorFunctionPrototype, _regeneratorDefine2(e, o, "GeneratorFunction")), e.prototype = Object.create(u), e; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, _regeneratorDefine2(u, "constructor", GeneratorFunctionPrototype), _regeneratorDefine2(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = "GeneratorFunction", _regeneratorDefine2(GeneratorFunctionPrototype, o, "GeneratorFunction"), _regeneratorDefine2(u), _regeneratorDefine2(u, o, "Generator"), _regeneratorDefine2(u, n, function () { return this; }), _regeneratorDefine2(u, "toString", function () { return "[object Generator]"; }), (_regenerator = function _regenerator() { return { w: i, m: f }; })(); }
function _regeneratorDefine2(e, r, n, t) { var i = Object.defineProperty; try { i({}, "", {}); } catch (e) { i = 0; } _regeneratorDefine2 = function _regeneratorDefine(e, r, n, t) { function o(r, n) { _regeneratorDefine2(e, r, function (e) { return this._invoke(r, n, e); }); } r ? i ? i(e, r, { value: n, enumerable: !t, configurable: !t, writable: !t }) : e[r] = n : (o("next", 0), o("throw", 1), o("return", 2)); }, _regeneratorDefine2(e, r, n, t); }
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
describe(_TimeInput.TimeInput.displayName, function () {
var render = (0, _unit.createRendererWithUniDriver)(_TimeInputPrivateUni.TimeInputPrivateDriverFactory);
beforeAll(function () {
var OriginalDateTimeFormat = Intl.DateTimeFormat;
vi.spyOn(global.Intl, 'DateTimeFormat').mockImplementation(function (locale, options) {
return new OriginalDateTimeFormat(locale, _objectSpread(_objectSpread({}, options), {}, {
numberingSystem: 'latn'
}));
});
});
afterAll(function () {
vi.restoreAllMocks();
});
describe('backgroundColor prop', function () {
it('should pass the background color down to the input', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee() {
var _render, container, inputRoot;
return _regenerator().w(function (_context) {
while (1) switch (_context.n) {
case 0:
_render = render(/*#__PURE__*/_react["default"].createElement(_TimeInput.TimeInput, {
backgroundColor: "green",
__self: _this,
__source: {
fileName: _jsxFileName,
lineNumber: 31,
columnNumber: 36
}
})), container = _render.container;
inputRoot = container.querySelector('[data-input-root]');
expect(inputRoot.style.getPropertyValue(_InputSt.vars['input-background'])).toBe('green');
case 1:
return _context.a(2);
}
}, _callee);
})));
});
describe('onChange', function () {
it("should call onChange with selected date as a parameter [when] second time slot in a list is chosen and value is confirmed", /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee2() {
var onChange, value, _render2, driver, timeSlots;
return _regenerator().w(function (_context2) {
while (1) switch (_context2.n) {
case 0:
onChange = vi.fn();
value = new Date('2020-01-01 00:00');
_render2 = render(/*#__PURE__*/_react["default"].createElement(_TimeInput.TimeInput, {
onChange: onChange,
value: value,
__self: _this,
__source: {
fileName: _jsxFileName,
lineNumber: 46,
columnNumber: 9
}
})), driver = _render2.driver;
timeSlots = (0, _TimeInputUtils.getTimeSlots)({
value: value,
timeStyle: _TimeInput.DEFAULT_TIME_STYLE,
locale: 'en',
step: _TimeInput.DEFAULT_STEP
});
_context2.n = 1;
return driver.clickOnInput();
case 1:
_context2.n = 2;
return driver.selectOptionAt(1);
case 2:
_context2.n = 3;
return driver.confirmValue();
case 3:
expect(onChange).toHaveBeenCalledWith({
date: new Date(timeSlots[1].id)
});
case 4:
return _context2.a(2);
}
}, _callee2);
})));
it('should call onChange one time [when] time slot is selected from dropdown and value is confirmed', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee3() {
var onChange, _render3, driver;
return _regenerator().w(function (_context3) {
while (1) switch (_context3.n) {
case 0:
onChange = vi.fn();
_render3 = render(/*#__PURE__*/_react["default"].createElement(_TimeInput.TimeInput, {
onChange: onChange,
__self: _this,
__source: {
fileName: _jsxFileName,
lineNumber: 67,
columnNumber: 33
}
})), driver = _render3.driver;
_context3.n = 1;
return driver.clickOnInput();
case 1:
expect(onChange).not.toHaveBeenCalled();
_context3.n = 2;
return driver.selectOptionAt(1);
case 2:
expect(onChange).toHaveBeenCalledTimes(1);
_context3.n = 3;
return driver.confirmValue();
case 3:
expect(onChange).toHaveBeenCalledTimes(1);
case 4:
return _context3.a(2);
}
}, _callee3);
})));
it("should call onChange with date object [when] manually typing time value and confirming it", /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee4() {
var onChange, value, _render4, driver;
return _regenerator().w(function (_context4) {
while (1) switch (_context4.n) {
case 0:
onChange = vi.fn();
value = new Date('2020-01-01 00:00');
_render4 = render(/*#__PURE__*/_react["default"].createElement(_TimeInput.TimeInput, {
onChange: onChange,
value: value,
__self: _this,
__source: {
fileName: _jsxFileName,
lineNumber: 83,
columnNumber: 9
}
})), driver = _render4.driver;
_context4.n = 1;
return driver.setValue('12:48');
case 1:
_context4.n = 2;
return driver.confirmValue();
case 2:
expect(onChange).toHaveBeenCalledWith({
date: new Date('2020-01-01 12:48')
});
case 3:
return _context4.a(2);
}
}, _callee4);
})));
it("should call onChange with date object [when] time from dropdown is typed in and value is confirmed", /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee5() {
var onChange, _render5, driver;
return _regenerator().w(function (_context5) {
while (1) switch (_context5.n) {
case 0:
onChange = vi.fn();
_render5 = render(/*#__PURE__*/_react["default"].createElement(_TimeInput.TimeInput, {
onChange: onChange,
locale: "en",
__self: _this,
__source: {
fileName: _jsxFileName,
lineNumber: 95,
columnNumber: 33
}
})), driver = _render5.driver;
_context5.n = 1;
return driver.setValue('12:00 PM');
case 1:
_context5.n = 2;
return driver.confirmValue();
case 2:
expect(onChange).toHaveBeenCalled();
case 3:
return _context5.a(2);
}
}, _callee5);
})));
it("should call onChange with null [when] clears value and confirms it", /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee6() {
var onChange, _render6, driver;
return _regenerator().w(function (_context6) {
while (1) switch (_context6.n) {
case 0:
onChange = vi.fn();
_render6 = render(/*#__PURE__*/_react["default"].createElement(_TimeInput.TimeInput, {
onChange: onChange,
value: new Date(),
__self: _this,
__source: {
fileName: _jsxFileName,
lineNumber: 106,
columnNumber: 9
}
})), driver = _render6.driver;
_context6.n = 1;
return driver.setValue('');
case 1:
_context6.n = 2;
return driver.confirmValue();
case 2:
expect(onChange).toHaveBeenCalledWith({
date: null
});
case 3:
return _context6.a(2);
}
}, _callee6);
})));
});
describe('onInvalid', function () {
it('should call onInvalid only once', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee7() {
var onInvalid, MockedComponent, _render7, driver, invalidValue;
return _regenerator().w(function (_context7) {
while (1) switch (_context7.n) {
case 0:
onInvalid = vi.fn();
MockedComponent = function MockedComponent() {
var _React$useState = _react["default"].useState(),
_React$useState2 = (0, _slicedToArray2["default"])(_React$useState, 2),
_invalidValue = _React$useState2[0],
setInvalidValue = _React$useState2[1];
var handleInvalid = function handleInvalid(value) {
onInvalid();
setInvalidValue(value);
};
return /*#__PURE__*/_react["default"].createElement(_TimeInput.TimeInput, {
size: "medium",
onInvalid: handleInvalid,
value: null,
__self: _this,
__source: {
fileName: _jsxFileName,
lineNumber: 131,
columnNumber: 11
}
});
};
_render7 = render(/*#__PURE__*/_react["default"].createElement(MockedComponent, {
__self: _this,
__source: {
fileName: _jsxFileName,
lineNumber: 135,
columnNumber: 33
}
})), driver = _render7.driver;
invalidValue = 'typing time';
_context7.n = 1;
return driver.setValue(invalidValue);
case 1:
_context7.n = 2;
return driver.blur();
case 2:
expect(onInvalid).toHaveBeenCalledTimes(1);
case 3:
return _context7.a(2);
}
}, _callee7);
})));
it('should call onInvalid with "formatError" [when] user types invalid value', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee8() {
var onInvalid, _render8, driver, invalidValue;
return _regenerator().w(function (_context8) {
while (1) switch (_context8.n) {
case 0:
onInvalid = vi.fn();
_render8 = render(/*#__PURE__*/_react["default"].createElement(_TimeInput.TimeInput, {
onInvalid: onInvalid,
invalidMessage: "Invalid message",
__self: _this,
__source: {
fileName: _jsxFileName,
lineNumber: 147,
columnNumber: 9
}
})), driver = _render8.driver;
invalidValue = 'typing time';
_context8.n = 1;
return driver.setValue(invalidValue);
case 1:
expect(onInvalid).toHaveBeenCalledWith({
validationType: 'formatError',
value: invalidValue
});
case 2:
return _context8.a(2);
}
}, _callee8);
})));
it('should call onInvalid and not call onChange [when] user types value that can`t be parsed', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee9() {
var onInvalid, onChange, _render9, driver, invalidValue;
return _regenerator().w(function (_context9) {
while (1) switch (_context9.n) {
case 0:
onInvalid = vi.fn();
onChange = vi.fn();
_render9 = render(/*#__PURE__*/_react["default"].createElement(_TimeInput.TimeInput, {
onInvalid: onInvalid,
onChange: onChange,
__self: _this,
__source: {
fileName: _jsxFileName,
lineNumber: 164,
columnNumber: 9
}
})), driver = _render9.driver;
invalidValue = '12a';
_context9.n = 1;
return driver.setValue(invalidValue);
case 1:
_context9.n = 2;
return driver.confirmValue();
case 2:
expect(onInvalid).toHaveBeenCalledWith({
validationType: 'formatError',
value: invalidValue
});
expect(onChange).not.toHaveBeenCalled();
case 3:
return _context9.a(2);
}
}, _callee9);
})));
it('should call onInvalid and not call onChange [when] user types invalid numbers', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee0() {
var onInvalid, onChange, _render0, driver, invalidValue;
return _regenerator().w(function (_context0) {
while (1) switch (_context0.n) {
case 0:
onInvalid = vi.fn();
onChange = vi.fn();
_render0 = render(/*#__PURE__*/_react["default"].createElement(_TimeInput.TimeInput, {
onInvalid: onInvalid,
onChange: onChange,
__self: _this,
__source: {
fileName: _jsxFileName,
lineNumber: 182,
columnNumber: 9
}
})), driver = _render0.driver;
invalidValue = '27:99 PM';
_context0.n = 1;
return driver.setValue(invalidValue);
case 1:
_context0.n = 2;
return driver.confirmValue();
case 2:
expect(onInvalid).toHaveBeenCalledWith({
validationType: 'formatError',
value: invalidValue
});
expect(onChange).not.toHaveBeenCalled();
case 3:
return _context0.a(2);
}
}, _callee0);
})));
it('should not call onInvalid and not set status to `error` [when] user clears value and confirms it', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee1() {
var status, onInvalid, _render1, driver, _t;
return _regenerator().w(function (_context1) {
while (1) switch (_context1.n) {
case 0:
status = 'error';
onInvalid = vi.fn();
_render1 = render(/*#__PURE__*/_react["default"].createElement(_TimeInput.TimeInput, {
value: new Date(),
onInvalid: onInvalid,
__self: _this,
__source: {
fileName: _jsxFileName,
lineNumber: 199,
columnNumber: 9
}
})), driver = _render1.driver;
_context1.n = 1;
return driver.setValue('');
case 1:
_context1.n = 2;
return driver.confirmValue();
case 2:
_t = expect;
_context1.n = 3;
return driver.hasStatus(status);
case 3:
_t(_context1.v).toBe(false);
expect(onInvalid).not.toHaveBeenCalled();
case 4:
return _context1.a(2);
}
}, _callee1);
})));
});
describe('user interactions', function () {
it("dropdown opens [when] clicked on input", /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee10() {
var _render10, driver, _t2;
return _regenerator().w(function (_context10) {
while (1) switch (_context10.n) {
case 0:
_render10 = render(/*#__PURE__*/_react["default"].createElement(_TimeInput.TimeInput, {
__self: _this,
__source: {
fileName: _jsxFileName,
lineNumber: 212,
columnNumber: 33
}
})), driver = _render10.driver;
_context10.n = 1;
return driver.clickOnInput();
case 1:
_t2 = expect;
_context10.n = 2;
return driver.isDropdownShown();
case 2:
_t2(_context10.v).toBe(true);
case 3:
return _context10.a(2);
}
}, _callee10);
})));
it("dropdown closes [when] option is selected", /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee14() {
var _render11, driver, _t4;
return _regenerator().w(function (_context14) {
while (1) switch (_context14.n) {
case 0:
_render11 = render(/*#__PURE__*/_react["default"].createElement(_TimeInput.TimeInput, {
__self: _this,
__source: {
fileName: _jsxFileName,
lineNumber: 219,
columnNumber: 33
}
})), driver = _render11.driver;
_context14.n = 1;
return (0, _react2.act)(/*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee11() {
return _regenerator().w(function (_context11) {
while (1) switch (_context11.n) {
case 0:
_context11.n = 1;
return driver.clickOnInput();
case 1:
return _context11.a(2);
}
}, _callee11);
})));
case 1:
_t4 = expect;
_context14.n = 2;
return driver.isDropdownShown();
case 2:
_t4(_context14.v).toBe(true);
_context14.n = 3;
return (0, _react2.act)(/*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee12() {
return _regenerator().w(function (_context12) {
while (1) switch (_context12.n) {
case 0:
_context12.n = 1;
return driver.selectOptionAt(1);
case 1:
return _context12.a(2);
}
}, _callee12);
})));
case 3:
_context14.n = 4;
return (0, _react2.waitFor)(/*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee13() {
var _t3;
return _regenerator().w(function (_context13) {
while (1) switch (_context13.n) {
case 0:
_t3 = expect;
_context13.n = 1;
return driver.isDropdownShown();
case 1:
_t3(_context13.v).toBe(false);
case 2:
return _context13.a(2);
}
}, _callee13);
})));
case 4:
return _context14.a(2);
}
}, _callee14);
})));
it("dropdown closes [when] clicked outside", /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee19() {
var _render12, driver;
return _regenerator().w(function (_context19) {
while (1) switch (_context19.n) {
case 0:
_render12 = render(/*#__PURE__*/_react["default"].createElement(_TimeInput.TimeInput, {
__self: _this,
__source: {
fileName: _jsxFileName,
lineNumber: 237,
columnNumber: 33
}
})), driver = _render12.driver;
_context19.n = 1;
return (0, _react2.act)(/*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee15() {
return _regenerator().w(function (_context15) {
while (1) switch (_context15.n) {
case 0:
_context15.n = 1;
return driver.clickOnInput();
case 1:
return _context15.a(2);
}
}, _callee15);
})));
case 1:
_context19.n = 2;
return (0, _react2.waitFor)(/*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee16() {
var _t5;
return _regenerator().w(function (_context16) {
while (1) switch (_context16.n) {
case 0:
_t5 = expect;
_context16.n = 1;
return driver.isDropdownShown();
case 1:
_t5(_context16.v).toBe(true);
case 2:
return _context16.a(2);
}
}, _callee16);
})));
case 2:
_context19.n = 3;
return (0, _react2.act)(/*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee17() {
return _regenerator().w(function (_context17) {
while (1) switch (_context17.n) {
case 0:
_context17.n = 1;
return driver.clickOutside();
case 1:
return _context17.a(2);
}
}, _callee17);
})));
case 3:
_context19.n = 4;
return (0, _react2.waitFor)(/*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee18() {
var _t6;
return _regenerator().w(function (_context18) {
while (1) switch (_context18.n) {
case 0:
_t6 = expect;
_context18.n = 1;
return driver.isDropdownShown();
case 1:
_t6(_context18.v).toBe(false);
case 2:
return _context18.a(2);
}
}, _callee18);
})));
case 4:
return _context19.a(2);
}
}, _callee19);
})));
it("input value is set [when] option from dropdown is selected", /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee20() {
var value, step, _render13, driver, _t7;
return _regenerator().w(function (_context20) {
while (1) switch (_context20.n) {
case 0:
value = new Date('2020-05-06 00:00');
step = 15;
_render13 = render(/*#__PURE__*/_react["default"].createElement(_TimeInput.TimeInput, {
value: value,
step: step,
__self: _this,
__source: {
fileName: _jsxFileName,
lineNumber: 259,
columnNumber: 33
}
})), driver = _render13.driver;
_context20.n = 1;
return driver.clickOnInput();
case 1:
_context20.n = 2;
return driver.selectOptionAt(1);
case 2:
_t7 = expect;
_context20.n = 3;
return driver.getInputValue();
case 3:
_t7(_context20.v).toBe('12:15 AM');
case 4:
return _context20.a(2);
}
}, _callee20);
})));
it('should close dropdown [when] Escape is pressed', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee24() {
var _render14, driver;
return _regenerator().w(function (_context24) {
while (1) switch (_context24.n) {
case 0:
_render14 = render(/*#__PURE__*/_react["default"].createElement(_TimeInput.TimeInput, {
__self: _this,
__source: {
fileName: _jsxFileName,
lineNumber: 267,
columnNumber: 33
}
})), driver = _render14.driver;
_context24.n = 1;
return (0, _react2.act)(/*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee21() {
return _regenerator().w(function (_context21) {
while (1) switch (_context21.n) {
case 0:
_context21.n = 1;
return driver.clickOnInput();
case 1:
return _context21.a(2);
}
}, _callee21);
})));
case 1:
_context24.n = 2;
return (0, _react2.act)(/*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee22() {
return _regenerator().w(function (_context22) {
while (1) switch (_context22.n) {
case 0:
_context22.n = 1;
return driver.pressKey('Escape');
case 1:
return _context22.a(2);
}
}, _callee22);
})));
case 2:
_context24.n = 3;
return (0, _react2.waitFor)(/*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee23() {
var _t8;
return _regenerator().w(function (_context23) {
while (1) switch (_context23.n) {
case 0:
_t8 = expect;
_context23.n = 1;
return driver.isDropdownShown();
case 1:
_t8(_context23.v).toBe(false);
case 2:
return _context23.a(2);
}
}, _callee23);
})));
case 3:
return _context24.a(2);
}
}, _callee24);
})));
it('should close dropdown [when] Enter is pressed and no option is highlighted', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee25() {
var _render15, driver, _t9;
return _regenerator().w(function (_context25) {
while (1) switch (_context25.n) {
case 0:
_render15 = render(/*#__PURE__*/_react["default"].createElement(_TimeInput.TimeInput, {
__self: _this,
__source: {
fileName: _jsxFileName,
lineNumber: 282,
columnNumber: 33
}
})), driver = _render15.driver;
_context25.n = 1;
return driver.clickOnInput();
case 1:
_context25.n = 2;
return driver.setValue('13');
case 2:
_context25.n = 3;
return driver.pressKey('Enter');
case 3:
_t9 = expect;
_context25.n = 4;
return driver.isDropdownShown();
case 4:
_t9(_context25.v).toBe(false);
case 5:
return _context25.a(2);
}
}, _callee25);
})));
it('should open dropdown [when] ArrowDown is pressed', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee26() {
var _render16, driver, _t0;
return _regenerator().w(function (_context26) {
while (1) switch (_context26.n) {
case 0:
_render16 = render(/*#__PURE__*/_react["default"].createElement(_TimeInput.TimeInput, {
__self: _this,
__source: {
fileName: _jsxFileName,
lineNumber: 292,
columnNumber: 33
}
})), driver = _render16.driver;
_context26.n = 1;
return driver.pressKey('ArrowDown');
case 1:
_t0 = expect;
_context26.n = 2;
return driver.isDropdownShown();
case 2:
_t0(_context26.v).toBe(true);
case 3:
return _context26.a(2);
}
}, _callee26);
})));
it('should not close dropdown and add space to input value [when] option is hovered and Spacebar is pressed', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee27() {
var _render17, driver, _t1;
return _regenerator().w(function (_context27) {
while (1) switch (_context27.n) {
case 0:
_render17 = render(/*#__PURE__*/_react["default"].createElement(_TimeInput.TimeInput, {
__self: _this,
__source: {
fileName: _jsxFileName,
lineNumber: 300,
columnNumber: 33
}
})), driver = _render17.driver;
_context27.n = 1;
return driver.setValue('16');
case 1:
_context27.n = 2;
return driver.pressKey('Spacebar');
case 2:
_t1 = expect;
_context27.n = 3;
return driver.isDropdownShown();
case 3:
_t1(_context27.v).toBe(true);
case 4:
return _context27.a(2);
}
}, _callee27);
})));
it('should stop selecting option [when] there is no matching value to input value', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee28() {
var _render18, driver, _t10;
return _regenerator().w(function (_context28) {
while (1) switch (_context28.n) {
case 0:
_render18 = render(/*#__PURE__*/_react["default"].createElement(_TimeInput.TimeInput, {
value: new Date('2021-09-10 12:30'),
__self: _this,
__source: {
fileName: _jsxFileName,
lineNumber: 311,
columnNumber: 9
}
})), driver = _render18.driver;
_context28.n = 1;
return driver.setValue('');
case 1:
_t10 = expect;
_context28.n = 2;
return driver.getSelectedOptionId();
case 2:
_t10(_context28.v).toBe(null);
case 3:
return _context28.a(2);
}
}, _callee28);
})));
it('should open dropdown [when] value is selected with `enter` and user types again', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee29() {
var _render19, driver, _t11, _t12;
return _regenerator().w(function (_context29) {
while (1) switch (_context29.n) {
case 0:
_render19 = render(/*#__PURE__*/_react["default"].createElement(_TimeInput.TimeInput, {
__self: _this,
__source: {
fileName: _jsxFileName,
lineNumber: 320,
columnNumber: 33
}
})), driver = _render19.driver;
_context29.n = 1;
return driver.setValue('2');
case 1:
_context29.n = 2;
return driver.pressKey('Enter');
case 2:
_t11 = expect;
_context29.n = 3;
return driver.isDropdownShown();
case 3:
_t11(_context29.v).toBe(false);
_context29.n = 4;
return driver.setValue('2');
case 4:
_t12 = expect;
_context29.n = 5;
return driver.isDropdownShown();
case 5:
_t12(_context29.v).toBe(true);
case 6:
return _context29.a(2);
}
}, _callee29);
})));
it('preserves the selected option id when the typed value matches its display value (regression: selectedId comparison fix)', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee30() {
var value, _render20, driver, initialSelectedId, _t13;
return _regenerator().w(function (_context30) {
while (1) switch (_context30.n) {
case 0:
value = new Date('2021-01-01 10:30');
_render20 = render(/*#__PURE__*/_react["default"].createElement(_TimeInput.TimeInput, {
value: value,
locale: "en",
__self: _this,
__source: {
fileName: _jsxFileName,
lineNumber: 332,
columnNumber: 33
}
})), driver = _render20.driver; // syncExternalValue picks 10:30 AM as the selected slot. Re-typing
// the exact display value should not clear the selection — previously
// the comparison `inputValue !== timeSlots[state.selectedId]` always
// nuked selectedId because the timestamp was used as an array index.
_context30.n = 1;
return driver.clickOnInput();
case 1:
_context30.n = 2;
return driver.getSelectedOptionId();
case 2:
initialSelectedId = _context30.v;
expect(initialSelectedId).toBeTruthy();
_context30.n = 3;
return driver.setValue('10:30 AM');
case 3:
_t13 = expect;
_context30.n = 4;
return driver.getSelectedOptionId();
case 4:
_t13(_context30.v).toBe(initialSelectedId);
case 5:
return _context30.a(2);
}
}, _callee30);
})));
it('should fill input with highlighted value [when] input loses focus', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee31() {
var _render21, driver, _t14;
return _regenerator().w(function (_context31) {
while (1) switch (_context31.n) {
case 0:
_render21 = render(/*#__PURE__*/_react["default"].createElement(_TimeInput.TimeInput, {
__self: _this,
__source: {
fileName: _jsxFileName,
lineNumber: 348,
columnNumber: 33
}
})), driver = _render21.driver;
_context31.n = 1;
return driver.setValue('2:00 P');
case 1:
_context31.n = 2;
return driver.confirmValue();
case 2:
_t14 = expect;
_context31.n = 3;
return driver.getInputValue();
case 3:
_t14(_context31.v).toBe('2:00 PM');
case 4:
return _context31.a(2);
}
}, _callee31);
})));
it('should close dropdown [when] input loses focus', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee33() {
var _render22, driver, _t16;
return _regenerator().w(function (_context33) {
while (1) switch (_context33.n) {
case 0:
_render22 = render(/*#__PURE__*/_react["default"].createElement(_TimeInput.TimeInput, {
__self: _this,
__source: {
fileName: _jsxFileName,
lineNumber: 357,
columnNumber: 33
}
})), driver = _render22.driver;
_context33.n = 1;
return driver.clickOnInput();
case 1:
_t16 = expect;
_context33.n = 2;
return driver.isDropdownShown();
case 2:
_t16(_context33.v).toBe(true);
_context33.n = 3;
return driver.confirmValue();
case 3:
_context33.n = 4;
return (0, _react2.waitFor)(/*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee32() {
var _t15;
return _regenerator().w(function (_context32) {
while (1) switch (_context32.n) {
case 0:
_t15 = expect;
_context32.n = 1;
return driver.isDropdownShown();
case 1:
_t15(_context32.v).toBe(false);
case 2:
return _context32.a(2);
}
}, _callee32);
})));
case 4:
return _context33.a(2);
}
}, _callee33);
})));
it('should scroll to nearest input value [when] dropdown is opened and there is no selected or autocompleted value', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee34() {
var _render23, driver, expectedScrollToOption, _t17, _t18;
return _regenerator().w(function (_context34) {
while (1) switch (_context34.n) {
case 0:
_render23 = render(/*#__PURE__*/_react["default"].createElement(_TimeInput.TimeInput, {
step: 15,
value: new Date('2021-11-16 11:33'),
__self: _this,
__source: {
fileName: _jsxFileName,
lineNumber: 370,
columnNumber: 9
}
})), driver = _render23.driver;
expectedScrollToOption = new Date('2021-11-16 11:45').getTime();
_t17 = expect;
_context34.n = 1;
return driver.getScrollToOptionValue();
case 1:
_t17(_context34.v).toBe(null);
_context34.n = 2;
return driver.clickOnInput();
case 2:
_t18 = expect;
_context34.n = 3;
return driver.getScrollToOptionValue();
case 3:
_t18(_context34.v).toContain("".concat(expectedScrollToOption));
case 4:
return _context34.a(2);
}
}, _callee34);
})));
it('should scroll to nearest input value [when] custom value is set and dropdown is opened', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee35() {
var _render24, driver, expectedScrollToOption, _t19;
return _regenerator().w(function (_context35) {
while (1) switch (_context35.n) {
case 0:
Date.now = vi.fn(function () {
return new Date('2021-01-01 05:00').valueOf();
});
_render24 = render(/*#__PURE__*/_react["default"].createElement(_TimeInput.TimeInput, {
step: 15,
__self: _this,
__source: {
fileName: _jsxFileName,
lineNumber: 384,
columnNumber: 33
}
})), driver = _render24.driver;
expectedScrollToOption = new Date('2021-01-01 12:00').getTime();
_context35.n = 1;
return driver.setValue('11:48');
case 1:
_context35.n = 2;
return driver.confirmValue();
case 2:
_context35.n = 3;
return driver.clickOnInput();
case 3:
_t19 = expect;
_context35.n = 4;
return driver.getScrollToOptionValue();
case 4:
_t19(_context35.v).toContain("".concat(expectedScrollToOption));
case 5:
return _context35.a(2);
}
}, _callee35);
})));
it('should set to 11:50 AM custom input value [when] 11:5 is typed and `Enter` is pressed', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee36() {
var _render25, driver, _t20;
return _regenerator().w(function (_context36) {
while (1) switch (_context36.n) {
case 0:
_render25 = render(/*#__PURE__*/_react["default"].createElement(_TimeInput.TimeInput, {
step: 15,
__self: _this,
__source: {
fileName: _jsxFileName,
lineNumber: 397,
columnNumber: 33
}
})), driver = _render25.driver;
_context36.n = 1;
return driver.setValue('11:5');
case 1:
_context36.n = 2;
return driver.pressKey('Enter');
case 2:
_t20 = expect;
_context36.n = 3;
return driver.getInputValue();
case 3:
_t20(_context36.v).toBe('11:50 AM');
case 4:
return _context36.a(2);
}
}, _callee36);
})));
it('should not submit value on blur [when] input is not valid', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee37() {
var onChange, _render26, driver, _t21;
return _regenerator().w(function (_context37) {
while (1) switch (_context37.n) {
case 0:
onChange = vi.fn();
_render26 = render(/*#__PURE__*/_react["default"].createElement(_TimeInput.TimeInput, {
onChange: onChange,
__self: _this,
__source: {
fileName: _jsxFileName,
lineNumber: 407,
columnNumber: 33
}
})), driver = _render26.driver;
_context37.n = 1;
return driver.setValue('123123123');
case 1:
_context37.n = 2;
return driver.confirmValue();
case 2:
_t21 = expect;
_context37.n = 3;
return driver.getInputValue();
case 3:
_t21(_context37.v).toBe('123123123');
expect(onChange).not.toHaveBeenCalled();
case 4:
return _context37.a(2);
}
}, _callee37);
})));
});
describe('aria', function () {
it('should have collapsed dropdown aria attributes [when] dropdown is closed', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee38() {
var _render27, driver, _t22, _t23, _t24, _t25;
return _regenerator().w(function (_context38) {
while (1) switch (_context38.n) {
case 0:
_render27 = render(/*#__PURE__*/_react["default"].createElement(_TimeInput.TimeInput, {
__self: _this,
__source: {
fileName: _jsxFileName,
lineNumber: 419,
columnNumber: 33
}
})), driver = _render27.driver;
_t22 = expect;
_context38.n = 1;
return driver.getInputAttribute('aria-expanded');
case 1:
_t22(_context38.v).toBe('false');
_t23 = expect;
_context38.n = 2;
return driver.getInputAttribute('aria-autocomplete');
case 2:
_t23(_context38.v).toBe('list');
_t24 = expect;
_context38.n = 3;
return driver.getInputAttribute('aria-controls');
case 3:
_t24(_context38.v).toBeNull();
_t25 = expect;
_context38.n = 4;
return driver.getInputAttribute('aria-activedescendant');
case 4:
_t25(_context38.v).toBeNull();
case 5:
return _context38.a(2);
}
}, _callee38);
})));
it('should have dropdown aria attributes [when] dropdown is open', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee39() {
var _render28, driver, _t26, _t27, _t28, _t29;
return _regenerator().w(function (_context39) {
while (1) switch (_context39.n) {
case 0:
_render28 = render(/*#__PURE__*/_react["default"].createElement(_TimeInput.TimeInput, {
value: new Date('2020-01-01 00:00'),
__self: _this,
__source: {
fileName: _jsxFileName,
lineNumber: 430,
columnNumber: 9
}
})), driver = _render28.driver;
_context39.n = 1;
return driver.clickOnInput();
case 1:
_t26 = expect;
_context39.n = 2;
return driver.getInputAttribute('aria-autocomplete');
case 2:
_t26(_context39.v).toBe('list');
_t27 = expect;
_context39.n = 3;
return driver.getInputAttribute('aria-expanded');
case 3:
_t27(_context39.v).toBe('true');
_t28 = expect;
_context39.n = 4;
return driver.getInputAttribute('aria-controls');
case 4:
_t28(_context39.v).toBeDefined();
_t29 = expect;
_context39.n = 5;
return driver.getInputAttribute('aria-activedescendant');
case 5:
_t29(_context39.v).toBe('dropdown-item-0');
case 6:
return _context39.a(2);
}
}, _callee39);
})));
});
describe('ref', function () {
it('should access focus method through ref [when] ref is passed to component', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee41() {
var timeInputRef, _render29, driver, _t30;
return _regenerator().w(function (_context41) {
while (1) switch (_context41.n) {
case 0:
timeInputRef = /*#__PURE__*/_react["default"].createRef();
_render29 = render(/*#__PURE__*/_react["default"].createElement(_TimeInput.TimeInput, {
ref: timeInputRef,
__self: _this,
__source: {
fileName: _jsxFileName,
lineNumber: 445,
columnNumber: 33
}
})), driver = _render29.driver;
_context41.n = 1;
return (0, _react2.act)(/*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee40() {
return _regenerator().w(function (_context40) {
while (1) switch (_context40.n) {
case 0:
return _context40.a(2, timeInputRef.current.focus());
}
}, _callee40);
})));
case 1:
_t30 = expect;
_context41.n = 2;
return driver.isFocused();
case 2:
_t30(_context41.v).toEqual(true);
case 3:
return _context41.a(2);
}
}, _callee41);
})));
it('should open dropdown when focus called on ref', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee43() {
var timeInputRef, _render30, driver, _t31, _t32;
return _regenerator().w(function (_context43) {
while (1) switch (_context43.n) {
case 0:
timeInputRef = /*#__PURE__*/_react["default"].createRef();
_render30 = render(/*#__PURE__*/_react["default"].createElement(_TimeInput.TimeInput, {
ref: timeInputRef,
__self: _this,
__source: {
fileName: _jsxFileName,
lineNumber: 454,
columnNumber: 33
}
})), driver = _render30.driver;
_context43.n = 1;
return (0, _react2.act)(/*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee42() {
return _regenerator().w(function (_context42) {
while (1) switch (_context42.n) {
case 0:
return _context42.a(2, timeInputRef.current.focus());
}
}, _callee42);
})));
case 1:
_t31 = expect;
_context43.n = 2;
return driver.isFocused();
case 2:
_t31(_context43.v).toEqual(true);
_t32 = expect;
_context43.n = 3;
return driver.isDropdownShown();
case 3:
_t32(_context43.v).toEqual(true);
case 4:
return _context43.a(2);
}
}, _callee43);
})));
it('should not open dropdown when input is readOnly and focus called on ref', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee45() {
var timeInputRef, _render31, driver, _t33, _t34;
return _regenerator().w(function (_context45) {
while (1) switch (_context45.n) {
case 0:
timeInputRef = /*#__PURE__*/_react["default"].createRef();
_render31 = render(/*#__PURE__*/_react["default"].createElement(_TimeInput.TimeInput, {
ref: timeInputRef,
readOnly: true,
__self: _this,
__source: {
fileName: _jsxFileName,
lineNumber: 464,
columnNumber: 33
}
})), driver = _render31.driver;
_context45.n = 1;
return (0, _react2.act)(/*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee44() {
return _regenerator().w(function (_context44) {
while (1) switch (_context44.n) {
case 0:
return _context44.a(2, timeInputRef.current.focus());
}
}, _callee44);
})));
case 1:
_t33 = expect;
_context45.n = 2;
return driver.isFocused();
case 2:
_t33(_context45.v).toEqual(true);
_t34 = expect;
_context45.n = 3;
return driver.isDropdownShown();
case 3:
_t34(_context45.v).toEqual(false);
case 4:
return _context45.a(2);
}
}, _callee45);
})));
it('should blur input when blur called on ref', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee47() {
var timeInputRef, _render32, driver, _t35, _t36;
return _regenerator().w(function (_context47) {
while (1) switch (_context47.n) {
case 0:
timeInputRef = /*#__PURE__*/_react["default"].createRef();
_render32 = render(/*#__PURE__*/_react["default"].createElement(_TimeInput.TimeInput, {
ref: timeInputRef,
readOnly: true,
__self: _this,
__source: {
fileName: _jsxFileName,
lineNumber: 474,
columnNumber: 33
}
})), driver = _render32.driver;
_context47.n = 1;
return driver.clickOnInput();
case 1:
_t35 = expect;
_context47.n = 2;
return driver.isFocused();
case 2:
_t35(_context47.v).toEqual(true);
_context47.n = 3;
return (0, _react2.act)(/*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee46() {
return _regenerator().w(function (_context46) {
while (1) switch (_context46.n) {
case 0:
return _context46.a(2, timeInputRef.current.blur());
}
}, _callee46);
})));
case 3:
_t36 = expect;
_context47.n = 4;
return driver.isFocused();
case 4:
_t36(_context47.v).toEqual(false);
case 5:
return _context47.a(2);
}
}, _callee47);
})));
it('should clear correct date inputValue on `clear` call', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee49() {
var timeInputRef, _render33, driver, _t37, _t38;
return _regenerator().w(function (_context49) {
while (1) switch (_context49.n) {
case 0:
timeInputRef = /*#__PURE__*/_react["default"].createRef();
_render33 = render(/*#__PURE__*/_react["default"].createElement(_TimeInput.TimeInput, {
ref: timeInputRef,
value: null,
__self: _this,
__source: {
fileName: _jsxFileName,
lineNumber: 485,
columnNumber: 33
}
})), driver = _render33.driver;
_context49.n = 1;
return driver.setValue('12:00');
case 1:
_t37 = expect;
_context49.n = 2;
return driver.getInputValue();
case 2:
_t37(_context49.v).toEqual('12:00 PM');
_context49.n = 3;
return (0, _react2.act)(/*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee48() {
return _regenerator().w(function (_context48) {
while (1) switch (_context48.n) {
case 0:
return _context48.a(2, timeInputRef.current.clear());
}
}, _callee48);
})));
case 3:
_t38 = expect;
_context49.n = 4;
return driver.getInputValue();
case 4:
_t38(_context49.v).toEqual('');
case 5:
return _context49.a(2);
}
}, _callee49);
})));
it('should clear a random string inputValue on `clear` call', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee51() {
var timeInputRef, _render34, driver, _t39, _t40;
return _regenerator().w(function (_context51) {
while (1) switch (_context51.n) {
case 0:
timeInputRef = /*#__PURE__*/_react["default"].createRef();
_render34 = render(/*#__PURE__*/_react["default"].createElement(_TimeInput.TimeInput, {
ref: timeInputRef,
value: null,
__self: _this,
__source: {
fileName: _jsxFileName,
lineNumber: 496,
columnNumber: 33
}
})), driver = _render34.driver;
_context51.n = 1;
return driver.setValue('just a random string');
case 1:
_t39 = expect;
_context51.n = 2;
return driver.getInputValue();
case 2:
_t39(_context51.v).toEqual('just a random string');
_context51.n = 3;
return (0, _react2.act)(/*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee50() {
return _regenerator().w(function (_context50) {
while (1) switch (_context50.n) {
case 0:
return _context50.a(2, timeInputRef.current.clear());
}
}, _callee50);
})));
case 3:
_t40 = expect;
_context51.n = 4;
return driver.getInputValue();
case 4:
_t40(_context51.v).toEqual('');
case 5:
return _context51.a(2);
}
}, _callee51);
})));
it('should call `onChange` when `clear` is called', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee53() {
var timeInputRef, onChangeMock;
return _regenerator().w(function (_context53) {
while (1) switch (_context53.n) {
case 0:
timeInputRef = /*#__PURE__*/_react["default"].createRef();
onChangeMock = vi.fn();
render(/*#__PURE__*/_react["default"].createElement(_TimeInput.TimeInput, {
onChange: onChangeMock,
ref: timeInputRef,
__self: _this,
__source: {
fileName: _jsxFileName,
lineNumber: 509,
columnNumber: 14
}
}));
_context53.n = 1;
return (0, _react2.act)(/*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee52() {
return _regenerator().w(function (_context52) {
while (1) switch (_context52.n) {
case 0:
return _context52.a(2, timeInputRef.current.clear());
}
}, _callee52);
})));
case 1:
expect(onChangeMock).toHaveBeenCalledTimes(1);
expect(onChangeMock).toHaveBeenCalledWith({
date: null
});
case 2:
return _context53.a(2);
}
}, _callee53);
})));
});
describe('inputRef prop', function () {
it('invokes a callback ref with the element on mount and null on unmount', function () {
var inputRef = vi.fn();
var _render35 = render(/*#__PURE__*/_react["default"].createElement(_TimeInput.TimeInput, {
inputRef: inputRef,
__self: _this,
__source: {
fileName: _jsxFileName,
lineNumber: 521,
columnNumber: 34
}
})),
unmount = _render35.unmount;
expect(inputRef.mock.calls[0][0]).toBeInstanceOf(HTMLInputElement);
unmount();
expect(inputRef).toHaveBeenLastCalledWith(null);
});
it('populates an object ref on mount and clears it on unmount', function () {
var inputRef = /*#__PURE__*/_react["default"].createRef();
var _render36 = render(/*#__PURE__*/_react["default"].createElement(_TimeInput.TimeInput, {
inputRef: inputRef,
__self: _this,
__source: {
fileName: _jsxFileName,
lineNumber: 531,
columnNumber: 34
}
})),
unmount = _render36.unmount;
expect(inputRef.current).toBeInstanceOf(HTMLInputElement);
unmount();
expect(inputRef.current).toBeNull();
});
it('coexists with the component-level imperative ref', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee55() {
var timeInputRef, inputRef, _render37, driver, _t41;
return _regenerator().w(function (_context55) {
while (1) switch (_context55.n) {
case 0:
timeInputRef = /*#__PURE__*/_react["default"].createRef();
inputRef = /*#__PURE__*/_react["default"].createRef();
_render37 = render(/*#__PURE__*/_react["default"].createElement(_TimeInput.TimeInput, {
ref: timeInputRef,
inputRef: inputRef,
__self: _this,
__source: {
fileName: _jsxFileName,
lineNumber: 543,
columnNumber: 9
}
})), driver = _render37.driver;
expect(inputRef.current).toBeInstanceOf(HTMLInputElement);
_context55.n = 1;
return (0, _react2.act)(/*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee54() {
return _regenerator().w(function (_context54) {
while (1) switch (_context54.n) {
case 0:
return _context54.a(2, timeInputRef.current.focus());
}
}, _callee54);
})));
case 1:
_t41 = expect;
_context55.n = 2;
return driver.isFocused();
case 2:
_t41(_context55.v).toEqual(true);
case 3:
return _context55.a(2);
}
}, _callee55);
})));
});
describe('customInput prop', function () {
it('renders the custom input in place of the default <input>', function () {
var CustomInput = /*#__PURE__*/_react["default"].forwardRef(function (props, ref) {
return /*#__PURE__*/_react["default"].createElement("input", (0, _extends2["default"])({
"data-custom-input": true,
ref: ref
}, props, {
__self: _this,
__source: {
fileName: _jsxFileName,
lineNumber: 556,
columnNumber: 9
}
}));
});
var _render38 = render(/*#__PURE__*/_react["default"].createElement(_TimeInput.TimeInput, {
customInput: CustomInput,
__self: _this,
__source: {
fileName: _jsxFileName,
lineNumber: 558,
columnNumber: 36
}
})),
container = _render38.container;
expect(container.querySelector('[data-custom-input]')).not.toBeNull();
});
it('preserves the component-level imperative ref alongside customInput', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee57() {
var CustomInput, timeInputRef, _render39, driver, _t42;
return _regenerator().w(function (_context57) {
while (1) switch (_context57.n) {
case 0:
CustomInput = /*#__PURE__*/_react["default"].forwardRef(function (props, ref) {
return /*#__PURE__*/_react["default"].createElement("input", (0, _extends2["default"])({
ref: ref
}, props, {
__self: _this,
__source: {
fileName: _jsxFileName,
lineNumber: 565,
columnNumber: 9
}
}));
});
timeInputRef = /*#__PURE__*/_react["default"].createRef();
_render39 = render(/*#__PURE__*/_react["default"].createElement(_TimeInput.TimeInput, {
customInput: CustomInput,
ref: timeInputRef,
__self: _this,
__source: {
fileName: _jsxFileName,
lineNumber: 569,
columnNumber: 9
}
})), driver = _render39.driver;
_context57.n = 1;
return (0, _react2.act)(/*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee56() {
return _regenerator().w(function (_context56) {
while (1) switch (_context56.n) {
case 0:
return _context56.a(2, timeInputRef.current.focus());
}
}, _callee56);
})));
case 1:
_t42 = expect;
_context57.n = 2;
return driver.isFocused();
case 2:
_t42(_context57.v).toEqual(true);
case 3:
return _context57.a(2);
}
}, _callee57);
})));
});
describe('properties', function () {
describe('value', function () {
it('should not mutate original value prop', function () {
var timestamp = 1713252540002;
var selectedDate = new Date(timestamp);
render(/*#__PURE__*/_react["default"].createElement(_TimeInput.TimeInput, {
value: selectedDate,
__self: _this,
__source: {
fileName: _jsxFileName,
lineNumber: 582,
columnNumber: 16
}
}));
expect(selectedDate.getTime()).toBe(timestamp);
});
it("should pass correct Date value to value prop [when] it is passed to value prop", /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee58() {
var expectedValue, _render40, driver, _t43;
return _regenerator().w(function (_context58) {
while (1) switch (_context58.n) {
case 0:
expectedValue = new Date('2020-05-06 18:43');
_render40 = render(/*#__PURE__*/_react["default"].createElement(_TimeInput.TimeInput, {
value: expectedValue,
__self: _this,
__source: {
fileName: _jsxFileName,
lineNumber: 589,
columnNumber: 35
}
})), driver = _render40.driver;
_t43 = expect;
_context58.n = 1;
return driver.getValue();
case 1:
_t43(_context58.v).toEqual(expectedValue);
case 2:
return _context58.a(2);
}
}, _callee58);
})));
it('should set input value as a nearest time slot to current time [when] value prop is not defined', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee59() {
var _render41, driver, timeSlots, expectedValue, _t44;
return _regenerator().w(function (_context59) {
while (1) switch (_context59.n) {
case 0:
_render41 = render(/*#__PURE__*/_react["default"].createElement(_TimeInput.TimeInput, {
step: 20,
__self: _this,
__source: {
fileName: _jsxFileName,
lineNumber: 595,
columnNumber: 35
}
})), driver = _render41.driver;
timeSlots = (0, _TimeInputUtils.getTimeSlots)({
locale: 'en',
timeStyle: 'short',
step: 20
});
expectedValue = (0, _TimeInputUtils.getClosestTimeSlot)({
timeSlots: timeSlots
});
_t44 = expect;
_context59.n = 1;
return driver.getInputValue();
case 1:
_t44(_context59.v).toBe(expectedValue.value);
case 2:
return _context59.a(2);
}
}, _callee59);
})));
it("should set value prop [when] value is typed in", /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee60() {
var _render42, driver, _t45;
return _regenerator().w(function (_context60) {
while (1) switch (_context60.n) {
case 0:
_render42 = render(/*#__PURE__*/_react["default"].createElement(_TimeInput.TimeInput, {
__self: _this,
__source: {
fileName: _jsxFileName,
lineNumber: 610,
columnNumber: 35
}
})), driver = _render42.driver;
_context60.n = 1;
return driver.clickOnInput();
case 1:
_context60.n = 2;
return driver.setValue('16:15');
case 2:
_t45 = expect;
_context60.n = 3;
return driver.getInputValue();
case 3:
_t45(_context60.v).toBe('16:15');
case 4:
return _context60.a(2);
}
}, _callee60);
})));
it("should set value prop [when] date value in milliseconds is 0", /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee61() {
var _render43, driver, _t46;
return _regenerator().w(function (_context61) {
while (1) switch (_context61.n) {
case 0:
_render43 = render(/*#__PURE__*/_react["default"].createElement(_TimeInput.TimeInput, {
value: new Date(0),
__self: _this,
__source: {
fileName: _jsxFileName,
lineNumber: 618,
columnNumber: 35
}
})), driver = _render43.driver;
_t46 = expect;
_context61.n = 1;
return driver.getInputValue();
case 1:
_t46(_context61.v).toMatch(/[0-9]{1,2}:00 AM/);
case 2:
return _context61.a(2);
}
}, _callee61);
})));
it('should update value prop [when] value prop is changed', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee62() {
var _render44, driver, rerender, _t47;
return _regenerator().w(function (_context62) {
while (1) switch (_context62.n) {
case 0:
_render44 = render(/*#__PURE__*/_react["default"].createElement(_TimeInput.TimeInput, {
value: new Date('2020-02-02 03:03'),
__self: _this,
__source: {
fileName: _jsxFileName,
lineNumber: 625,
columnNumber: 11
}
})), driver = _render44.driver, rerender = _render44.rerender;
rerender(/*#__PURE__*/_react["default"].createElement(_TimeInput.TimeInput, {
value: new Date('2020-02-02 02:02'),
__self: _this,
__source: {
fileName: _jsxFileName,
lineNumber: 628,
columnNumber: 18
}
}));
_t47 = expect;
_context62.n = 1;
return driver.getInputValue();
case 1:
_t47(_context62.v).toBe('2:02 AM');
case 2:
return _context62.a(2);
}
}, _callee62);
})));
it('input should be empty [when] value prop equals null', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee63() {
var _render45, driver, _t48;
return _regenerator().w(function (_context63) {
while (1) switch (_context63.n) {
case 0:
_render45 = render(/*#__PURE__*/_react["default"].createElement(_TimeInput.TimeInput, {
value: null,
__self: _this,
__source: {
fileName: _jsxFileName,
lineNumber: 634,
columnNumber: 35
}
})), driver = _render45.driver;
_t48 = expect;
_context63.n = 1;
return driver.getInputValue();
case 1:
_t48(_context63.v).toEqual('');
case 2:
return _context63.a(2);
}
}, _callee63);
})));
it('input should be empty and have no error state [when] value prop equals null, input focused and then blurred', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee64() {
var _render46, driver, _t49, _t50, _t51;
return _regenerator().w(function (_context64) {
while (1) switch (_context64.n) {
case 0:
_render46 = render(/*#__PURE__*/_react["default"].createElement(_TimeInput.TimeInput, {
value: null,
__self: _this,
__source: {
fileName: _jsxFileName,
lineNumber: 639,
columnNumber: 35
}
})), driver = _render46.driver;
_context64.n = 1;
return driver.clickOnInput();
case 1:
_t49 = expect;
_context64.n = 2;
return driver.getInputValue();
case 2:
_t49(_context64.v).toEqual('');
_context64.n = 3;
return driver.confirmValue();
case 3:
_t50 = expect;
_context64.n = 4;
return driver.getInputValue();
case 4:
_t50(_context64.v).toEqual('');
_t51 = expect;
_context64.n = 5;
return driver.hasStatus('error');
case 5:
_t51(_context64.v).toEqual(false);
case 6:
return _context64.a(2);
}
}, _callee64);
})));
});
describe('disable', function () {
it("should disable input [when] disable prop is true", /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee65() {
var _render47, driver, _t52;
return _regenerator().w(function (_context65) {
while (1) switch (_context65.n) {
case 0:
_render47 = render(/*#__PURE__*/_react["default"].createElement(_TimeInput.TimeInput, {
disabled: true,
__self: _this,
__source: {
fileName: _jsxFileName,
lineNumber: 653,
columnNumber: 35
}
})), driver = _render47.driver;
_t52 = expect;
_context65.n = 1;
return driver.isDisabled();
case 1:
_t52(_context65.v).toBe(true);
case 2:
return _context65.a(2);
}
}, _callee65);
})));
});
describe('disableKeyboardType', function () {
it("should be readOnly when disableKeyboardType is true", /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee66() {
var onChange, _render48, driver;
return _regenerator().w(function (_context66) {
while (1) switch (_context66.n) {
case 0:
onChange = vi.fn();
_render48 = render(/*#__PURE__*/_react["default"].createElement(_TimeInput.TimeInput, {
disableKeyboardType: true,
onChange: onChange,
value: new Date(),
__self: _this,
__source: {
fileName: _jsxFileName,
lineNumber: 663,
columnNumber: 11
}
})), driver = _render48.driver;
_context66.n = 1;
return driver.setValue('');
case 1:
_context66.n = 2;
return driver.confirmValue();
case 2:
expect(onChange).not.toHaveBeenCalledWith({
date: null
});
case 3:
return _context66.a(2);
}
}, _callee66);
})));
it("should allow typing when disableKeyboardType is false", /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee67() {
var onChange, _render49, driver;
return _regenerator().w(function (_context67) {
while (1) switch (_context67.n) {
case 0:
onChange = vi.fn();
_render49 = render(/*#__PURE__*/_react["default"].createElement(_TimeInput.TimeInput, {
disableKeyboardType: false,
onChange: onChange,
value: new Date(),
__self: _this,
__source: {
fileName: _jsxFileName,
lineNumber: 681,
columnNumber: 11
}
})), driver = _render49.driver;
_context67.n = 1;
return driver.setValue('');
case 1:
_context67.n = 2;
return driver.confirmValue();
case 2:
expect(onChange).toHaveBeenCalledWith({
date: null
});
case 3:
return _context67.a(2);
}
}, _callee67);
})));
it("should allow typing when disableKeyboardType is not declared", /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee68() {
var onChange, _render50, driver;
return _regenerator().w(function (_context68) {
while (1) switch (_context68.n) {
case 0:
onChange = vi.fn();
_render50 = render(/*#__PURE__*/_react["default"].createElement(_TimeInput.TimeInput, {
onChange: onChange,
value: new Date(),
__self: _this,
__source: {
fileName: _jsxFileName,
lineNumber: 699,
columnNumber: 11
}
})), driver = _render50.driver;
_context68.n = 1;
return driver.setValue('');
case 1:
_context68.n = 2;
return driver.confirmValue();
case 2:
expect(onChange).toHaveBeenCalledWith({
date: null
});
case 3:
return _context68.a(2);
}
}, _callee68);
})));
});
describe('readOnly', function () {
it("should not open dropdown on input click [when] readOnly prop is true", /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee69() {
var _render51, driver, _t53;
return _regenerator().w(function (_context69) {
while (1) switch (_context69.n) {
case 0:
_render51 = render(/*#__PURE__*/_react["default"].createElement(_TimeInput.TimeInput, {
readOnly: true,
__self: _this,
__source: {
fileName: _jsxFileName,
lineNumber: 713,
columnNumber: 35
}
})), driver = _render51.driver;
_context69.n = 1;
return driver.clickOnInput();
case 1:
_t53 = expect;
_context69.n = 2;
return driver.isDropdownShown();
case 2:
_t53(_context69.v).toBe(false);
case 3:
return _context69.a(2);
}
}, _callee69);
})));
});
describe('statusMessage', function () {
it('should display error status [when] status prop is set to `error`', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee70() {
var status, statusMessage, _render52, driver, _t54, _t55;
return _regenerator().w(function (_context70) {
while (1) switch (_context70.n) {
case 0:
status = 'error';
statusMessage = 'Error message';
_render52 = render(/*#__PURE__*/_react["default"].createElement(_TimeInput.TimeInput, {
status: status,
statusMessage: statusMessage,
__self: _this,
__source: {
fileName: _jsxFileName,
lineNumber: 726,
columnNumber: 11
}
})), driver = _render52.driver;
_t54 = expect;
_context70.n = 1;
return driver.hasStatus(status);
case 1:
_t54(_context70.v).toBe(true);
_t55 = expect;
_context70.n = 2;
return driver.getStatusMessage();
case 2:
_t55(_context70.v).toBe(statusMessage);
case 3:
return _context70.a(2);
}
}, _callee70);
})));
it('should not display status [when] status prop is not passed', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee71() {
var _render53, driver, _t56;
return _regenerator().w(function (_context71) {
while (1) switch (_context71.n) {
case 0:
_render53 = render(/*#__PURE__*/_react["default"].createElement(_TimeInput.TimeInput, {
__self: _this,
__source: {
fileName: _jsxFileName,
lineNumber: 734,
columnNumber: 35
}
})), driver = _render53.driver;
_t56 = expect;
_context71.n = 1;
return driver.hasStatus('error');
case 1:
_t56(_context71.v).toBe(false);
case 2:
return _context71.a(2);
}
}, _callee71);
})));
});
describe('invalidMessage', function () {
it('should display invalid message and error status [when] invalidMessage prop is passed and user types invalid value', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee72() {
var status, invalidMessage, _render54, driver, _t57, _t58;
return _regenerator().w(function (_context72) {
while (1) switch (_context72.n) {
case 0:
status = 'error';
invalidMessage = 'Custom invalid message';
_render54 = render(/*#__PURE__*/_react["default"].createElement(_TimeInput.TimeInput, {
invalidMessage: invalidMessage,
__self: _this,
__source: {
fileName: _jsxFileName,
lineNumber: 746,
columnNumber: 11
}
})), driver = _render54.driver;
_context72.n = 1;
return driver.setValue('aa');
case 1:
_t57 = expect;
_context72.n = 2;
return driver.hasStatus(status);
case 2:
_t57(_context72.v).toBe(true);
_t58 = expect;
_context72.n = 3;
return driver.getStatusMessage();
case 3:
_t58(_context72.v).toBe(invalidMessage);
case 4:
return _context72.a(2);
}
}, _callee72);
})));
it('should not display error status [when] invalidMessage prop is NOT passed and user types invalid value', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee73() {
var status, _render55, driver, _t59;
return _regenerator().w(function (_context73) {
while (1) switch (_context73.n) {
case 0:
status = 'error';
_render55 = render(/*#__PURE__*/_react["default"].createElement(_TimeInput.TimeInput, {
__self: _this,
__source: {
fileName: _jsxFileName,
lineNumber: 757,
columnNumber: 35
}
})), driver = _render55.driver;
_context73.n = 1;
return driver.setValue('aa');
case 1:
_t59 = expect;
_context73.n = 2;
return driver.hasStatus(status);
case 2:
_t59(_context73.v).toBe(false);
case 3:
return _context73.a(2);
}
}, _callee73);
})));
});
describe('timeStyle', function () {
it('should set timeStyle prop to short [when] timeStyle prop is `short`', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee74() {
var _render56, driver, _t60;
return _regenerator().w(function (_context74) {
while (1) switch (_context74.n) {
case 0:
_render56 = render(/*#__PURE__*/_react["default"].createElement(_TimeInput.TimeInput, {
__self: _this,
__source: {
fileName: _jsxFileName,
lineNumber: 767,
columnNumber: 35
}
})), driver = _render56.driver;
_t60 = expect;
_context74.n = 1;
return driver.getTimeStyle();
case 1:
_t60(_context74.v).toBe('short');
case 2:
return _context74.a(2);
}
}, _callee74);
})));
it('should set timeStyle prop to long [when] timeStyle prop is `long`', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee75() {
var _render57, driver, _t61;
return _regenerator().w(function (_context75) {
while (1) switch (_context75.n) {
case 0:
_render57 = render(/*#__PURE__*/_react["default"].createElement(_TimeInput.TimeInput, {
timeStyle: "long",
__self: _this,
__source: {
fileName: _jsxFileName,
lineNumber: 773,
columnNumber: 35
}
})), driver = _render57.driver;
_t61 = expect;
_context75.n = 1;
return driver.getTimeStyle();
case 1:
_t61(_context75.v).toBe('long');
case 2:
return _context75.a(2);
}
}, _callee75);
})));
});
describe('locale', function () {
it('should set locale prop to `hi` [when] locale prop is set to `hi`', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee76() {
var _render58, driver, _t62;
return _regenerator().w(function (_context76) {
while (1) switch (_context76.n) {
case 0:
_render58 = render(/*#__PURE__*/_react["default"].createElement(_TimeInput.TimeInput, {
locale: "hi",
__self: _this,
__source: {
fileName: _jsxFileName,
lineNumber: 781,
columnNumber: 35
}
})), driver = _render58.driver;
_t62 = expect;
_context76.n = 1;
return driver.getLocale();
case 1:
_t62(_context76.v).toBe('hi');
case 2:
return _context76.a(2);
}
}, _callee76);
})));
it('should set the locale prop to `es` [when] locale prop is set to `es` in WixStyleReactEnvironmentProvider', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee77() {
var _render59, driver, _t63;
return _regenerator().w(function (_context77) {
while (1) switch (_context77.n) {
case 0:
_render59 = render(/*#__PURE__*/_react["default"].createElement(_WixStyleReactEnvironmentProvider.WixStyleReactEnvironmentProvider, {
locale: "es",
__self: _this,
__source: {
fileName: _jsxFileName,
lineNumber: 788,
columnNumber: 11
}
}, /*#__PURE__*/_react["default"].createElement(_TimeInput.TimeInput, {
__self: _this,
__source: {
fileName: _jsxFileName,
lineNumber: 789,
columnNumber: 13
}
}))), driver = _render59.driver;
_t63 = expect;
_context77.n = 1;
return driver.getLocale();
case 1:
_t63(_context77.v).toBe('es');
case 2:
return _context77.a(2);
}
}, _callee77);
})));
it('should set locale prop instead of WixStyleReactEnvironmentProvider [when] given both', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee78() {
var _render60, driver, _t64;
return _regenerator().w(function (_context78) {
while (1) switch (_context78.n) {
case 0:
_render60 = render(/*#__PURE__*/_react["default"].createElement(_WixStyleReactEnvironmentProvider.WixStyleReactEnvironmentProvider, {
locale: "es",
__self: _this,
__source: {
fileName: _jsxFileName,
lineNumber: 798,
columnNumber: 11
}
}, /*#__PURE__*/_react["default"].createElement(_TimeInput.TimeInput, {
locale: "lt",
__self: _this,
__source: {
fileName: _jsxFileName,
lineNumber: 799,
columnNumber: 13
}
}))), driver = _render60.driver;
_t64 = expect;
_context78.n = 1;
return driver.getLocale();
case 1:
_t64(_context78.v).toBe('lt');
case 2:
return _context78.a(2);
}
}, _callee78);
})));
it('should set locale prop to `en` [when] locale prop is not set', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee79() {
var _render61, driver, _t65;
return _regenerator().w(function (_context79) {
while (1) switch (_context79.n) {
case 0:
_render61 = render(/*#__PURE__*/_react["default"].createElement(_TimeInput.TimeInput, {
__self: _this,
__source: {
fileName: _jsxFileName,
lineNumber: 807,
columnNumber: 35
}
})), driver = _render61.driver;
_t65 = expect;
_context79.n = 1;
return driver.getLocale();
case 1:
_t65(_context79.v).toBe('en');
case 2:
return _context79.a(2);
}
}, _callee79);
})));
});
});
describe('autocomplete', function () {
describe('with en locale (12 hour format) and current time is 12:18 PM', function () {
it("shouldn't highlight anything [when] 0 is typed in", /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee80() {
var _render62, driver, _t66;
return _regenerator().w(function (_context80) {
while (1) switch (_context80.n) {
case 0:
Date.now = vi.fn(function () {
return new Date('2021-01-01 12:18').valueOf();
});
_render62 = render(/*#__PURE__*/_react["default"].createElement(_TimeInput.TimeInput, {
locale: "en",
__self: _this,
__source: {
fileName: _jsxFileName,
lineNumber: 818,
columnNumber: 35
}
})), driver = _render62.driver;
_context80.n = 1;
return driver.clickOnInput();
case 1:
_context80.n = 2;
return driver.setValue('0');
case 2:
_t66 = expect;
_context80.n = 3;
return driver.getHighlightedOption();
case 3:
_t66(_context80.v).toBe(null);
case 4:
return _context80.a(2);
}
}, _callee80);
})));
it('should highlight 12:30 PM [when] 1 is typed in', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee81() {
var _render63, driver, _t67;
return _regenerator().w(function (_context81) {
while (1) switch (_context81.n) {
case 0:
Date.now = vi.fn(function () {
return new Date('2021-01-01 12:18').valueOf();
});
_render63 = render(/*#__PURE__*/_react["default"].createElement(_TimeInput.TimeInput, {
locale: "en",
__self: _this,
__source: {
fileName: _jsxFileName,
lineNumber: 828,
columnNumber: 35
}
})), driver = _render63.driver;
_context81.n = 1;
return driver.clickOnInput();
case 1:
_context81.n = 2;
return driver.setValue('1');
case 2:
_t67 = expect;
_context81.n = 3;
return driver.getHighlightedOption();
case 3:
_t67(_context81.v).toBe('12:30 PM');
case 4:
return _context81.a(2);
}
}, _callee81);
})));
it('should highlight 2:00 PM [when] 2 is typed in', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee82() {
var _render64, driver, _t68;
return _regenerator().w(function (_context82) {
while (1) switch (_context82.n) {
case 0:
Date.now = vi.fn(function () {
return new Date('2021-01-01 12:18').valueOf();
});
_render64 = render(/*#__PURE__*/_react["default"].createElement(_TimeInput.TimeInput, {
locale: "en",
__self: _this,
__source: {
fileName: _jsxFileName,
lineNumber: 838,
columnNumber: 35
}
})), driver = _render64.driver;
_context82.n = 1;
return driver.clickOnInput();
case 1:
_context82.n = 2;
return driver.setValue('2');
case 2:
_t68 = expect;
_context82.n = 3;
return driver.getHighlightedOption();
case 3:
_t68(_context82.v).toBe('2:00 PM');
case 4:
return _context82.a(2);
}
}, _callee82);
})));
it('should highlight 1:00 PM [when] 01 is typed in', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee83() {
var _render65, driver, _t69;
return _regenerator().w(function (_context83) {
while (1) switch (_context83.n) {
case 0:
Date.now = vi.fn(function () {
return new Date('2021-01-01 12:18').valueOf();
});
_render65 = render(/*#__PURE__*/_react["default"].createElement(_TimeInput.TimeInput, {
locale: "en",
__self: _this,
__source: {
fileName: _jsxFileName,
lineNumber: 848,
columnNumber: 35
}
})), driver = _render65.driver;
_context83.n = 1;
return driver.clickOnInput();
case 1:
_context83.n = 2;
return driver.setValue('01');
case 2:
_t69 = expect;
_context83.n = 3;
return driver.getHighlightedOption();
case 3:
_t69(_context83.v).toBe('1:00 PM');
case 4:
return _context83.a(2);
}
}, _callee83);
})));
it("shouldn't highlight anything [when] 18 is typed in", /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee84() {
var _render66, driver, _t70;
return _regenerator().w(function (_context84) {
while (1) switch (_context84.n) {
case 0:
Date.now = vi.fn(function () {
return new Date('2021-01-01 12:18').valueOf();
});
_render66 = render(/*#__PURE__*/_react["default"].createElement(_TimeInput.TimeInput, {
locale: "en",
__self: _this,
__source: {
fileName: _jsxFileName,
lineNumber: 858,
columnNumber: 35
}
})), driver = _render66.driver;
_context84.n = 1;
return driver.clickOnInput();
case 1:
_context84.n = 2;
return driver.setValue('18');
case 2:
_t70 = expect;
_context84.n = 3;
return driver.getHighlightedOption();
case 3:
_t70(_context84.v).toBe(null);
case 4:
return _context84.a(2);
}
}, _callee84);
})));
it('should highlight 1:15 PM [when] 1:1 is typed in', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee85() {
var _render67, driver, _t71;
return _regenerator().w(function (_context85) {
while (1) switch (_context85.n) {
case 0:
Date.now = vi.fn(function () {
return new Date('2021-01-01 12:18').valueOf();
});
_render67 = render(/*#__PURE__*/_react["default"].createElement(_TimeInput.TimeInput, {
locale: "en",
__self: _this,
__source: {
fileName: _jsxFileName,
lineNumber: 868,
columnNumber: 35
}
})), driver = _render67.driver;
_context85.n = 1;
return driver.clickOnInput();
case 1:
_context85.n = 2;
return driver.setValue('1:1');
case 2:
_t71 = expect;
_context85.n = 3;
return driver.getHighlightedOption();
case 3:
_t71(_context85.v).toBe('1:15 PM');
case 4:
return _context85.a(2);
}
}, _callee85);
})));
it('should highlight 1:15 PM [when] 01:1 is typed in', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee86() {
var _render68, driver, _t72;
return _regenerator().w(function (_context86) {
while (1) switch (_context86.n) {
case 0:
Date.now = vi.fn(function () {
return new Date('2021-01-01 12:18').valueOf();
});
_render68 = render(/*#__PURE__*/_react["default"].createElement(_TimeInput.TimeInput, {
locale: "en",
__self: _this,
__source: {
fileName: _jsxFileName,
lineNumber: 878,
columnNumber: 35
}
})), driver = _render68.driver;
_context86.n = 1;
return driver.clickOnInput();
case 1:
_context86.n = 2;
return driver.setValue('01:1');
case 2:
_t72 = expect;
_context86.n = 3;
return driver.getHighlightedOption();
case 3:
_t72(_context86.v).toBe('1:15 PM');
case 4:
return _context86.a(2);
}
}, _callee86);
})));
it("shouldn't highlight anything [when] 2:40 is typed in and step prop is set to 15", /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee87() {
var _render69, driver, _t73;
return _regenerator().w(function (_context87) {
while (1) switch (_context87.n) {
case 0:
Date.now = vi.fn(function () {
return new Date('2021-01-01 12:18').valueOf();
});
_render69 = render(/*#__PURE__*/_react["default"].createElement(_TimeInput.TimeInput, {
locale: "en",
step: 15,
__self: _this,
__source: {
fileName: _jsxFileName,
lineNumber: 888,
columnNumber: 35
}
})), driver = _render69.driver;
_context87.n = 1;
return driver.clickOnInput();
case 1:
_context87.n = 2;
return driver.setValue('2:40');
case 2:
_t73 = expect;
_context87.n = 3;
return driver.getHighlightedOption();
case 3:
_t73(_context87.v).toBe(null);
case 4:
return _context87.a(2);
}
}, _callee87);
})));
it('should highlight 11:15 PM [when] 1115 is typed in', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee88() {
var _render70, driver, _t74;
return _regenerator().w(function (_context88) {
while (1) switch (_context88.n) {
case 0:
Date.now = vi.fn(function () {
return new Date('2021-01-01 12:18').valueOf();
});
_render70 = render(/*#__PURE__*/_react["default"].createElement(_TimeInput.TimeInput, {
locale: "en",
__self: _this,
__source: {
fileName: _jsxFileName,
lineNumber: 898,
columnNumber: 35
}
})), driver = _render70.driver;
_context88.n = 1;
return driver.clickOnInput();
case 1:
_context88.n = 2;
return driver.setValue('1115');
case 2:
_t74 = expect;
_context88.n = 3;
return driver.getHighlightedOption();
case 3:
_t74(_context88.v).toBe('11:15 PM');
case 4:
return _context88.a(2);
}
}, _callee88);
})));
it('should highlight 1:15 PM [when] 115 is typed in', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee89() {
var _render71, driver, _t75;
return _regenerator().w(function (_context89) {
while (1) switch (_context89.n) {
case 0:
Date.now = vi.fn(function () {
return new Date('2021-01-01 12:18').valueOf();
});
_render71 = render(/*#__PURE__*/_react["default"].createElement(_TimeInput.TimeInput, {
locale: "en",
__self: _this,
__source: {
fileName: _jsxFileName,
lineNumber: 908,
columnNumber: 35
}
})), driver = _render71.driver;
_context89.n = 1;
return driver.clickOnInput();
case 1:
_context89.n = 2;
return driver.setValue('115');
case 2:
_t75 = expect;
_context89.n = 3;
return driver.getHighlightedOption();
case 3:
_t75(_context89.v).toBe('1:15 PM');
case 4:
return _context89.a(2);
}
}, _callee89);
})));
});
describe('with en locale (12 hour format) and current time is 11:18 PM', function () {
it('should highlight 2:00 AM [when] 2 is typed in', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee90() {
var _render72, driver, _t76;
return _regenerator().w(function (_context90) {
while (1) switch (_context90.n) {
case 0:
Date.now = vi.fn(function () {
return new Date('2021-01-01 23:18').valueOf();
});
_render72 = render(/*#__PURE__*/_react["default"].createElement(_TimeInput.TimeInput, {
locale: "en",
__self: _this,
__source: {
fileName: _jsxFileName,
lineNumber: 920,
columnNumber: 35
}
})), driver = _render72.driver;
_context90.n = 1;
return driver.clickOnInput();
case 1:
_context90.n = 2;
return driver.setValue('2');
case 2:
_t76 = expect;
_context90.n = 3;
return driver.getHighlightedOption();
case 3:
_t76(_context90.v).toBe('2:00 AM');
case 4:
return _context90.a(2);
}
}, _callee90);
})));
it('should highlight 1:00 AM [when] 01 is typed in', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee91() {
var _render73, driver, _t77;
return _regenerator().w(function (_context91) {
while (1) switch (_context91.n) {
case 0:
Date.now = vi.fn(function () {
return new Date('2021-01-01 23:18').valueOf();
});
_render73 = render(/*#__PURE__*/_react["default"].createElement(_TimeInput.TimeInput, {
locale: "en",
__self: _this,
__source: {
fileName: _jsxFileName,
lineNumber: 930,
columnNumber: 35
}
})), driver = _render73.driver;
_context91.n = 1;
return driver.clickOnInput();
case 1:
_context91.n = 2;
return driver.setValue('01');
case 2:
_t77 = expect;
_context91.n = 3;
return driver.getHighlightedOption();
case 3:
_t77(_context91.v).toBe('1:00 AM');
case 4:
return _context91.a(2);
}
}, _callee91);
})));
it('should highlight 10:15 AM [when] 10:15 is typed in', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee92() {
var _render74, driver, _t78;
return _regenerator().w(function (_context92) {
while (1) switch (_context92.n) {
case 0:
Date.now = vi.fn(function () {
return new Date('2021-01-01 23:18').valueOf();
});
_render74 = render(/*#__PURE__*/_react["default"].createElement(_TimeInput.TimeInput, {
locale: "en",
__self: _this,
__source: {
fileName: _jsxFileName,
lineNumber: 940,
columnNumber: 35
}
})), driver = _render74.driver;
_context92.n = 1;
return driver.clickOnInput();
case 1:
_context92.n = 2;
return driver.setValue('10:15');
case 2:
_t78 = expect;
_context92.n = 3;
return driver.getHighlightedOption();
case 3:
_t78(_context92.v).toBe('10:15 AM');
case 4:
return _context92.a(2);
}
}, _callee92);
})));
});
describe('with lt locale (24 hour format) and current time is 09:12', function () {
it('should highlight 10:00 [when] 1 is typed in', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee93() {
var _render75, driver, _t79;
return _regenerator().w(function (_context93) {
while (1) switch (_context93.n) {
case 0:
Date.now = vi.fn(function () {
return new Date('2021-01-01 09:12').valueOf();
});
_render75 = render(/*#__PURE__*/_react["default"].createElement(_TimeInput.TimeInput, {
locale: "lt",
__self: _this,
__source: {
fileName: _jsxFileName,
lineNumber: 952,
columnNumber: 35
}
})), driver = _render75.driver;
_context93.n = 1;
return driver.clickOnInput();
case 1:
_context93.n = 2;
return driver.setValue('1');
case 2:
_t79 = expect;
_context93.n = 3;
return driver.getHighlightedOption();
case 3:
_t79(_context93.v).toBe('10:00');
case 4:
return _context93.a(2);
}
}, _callee93);
})));
it('should highlight 01:00 [when] 01 is typed in', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee94() {
var _render76, driver, _t80;
return _regenerator().w(function (_context94) {
while (1) switch (_context94.n) {
case 0:
Date.now = vi.fn(function () {
return new Date('2021-01-01 09:12').valueOf();
});
_render76 = render(/*#__PURE__*/_react["default"].createElement(_TimeInput.TimeInput, {
locale: "lt",
__self: _this,
__source: {
fileName: _jsxFileName,
lineNumber: 962,
columnNumber: 35
}
})), driver = _render76.driver;
_context94.n = 1;
return driver.clickOnInput();
case 1:
_context94.n = 2;
return driver.setValue('01');
case 2:
_t80 = expect;
_context94.n = 3;
return driver.getHighlightedOption();
case 3:
_t80(_context94.v).toBe('01:00');
case 4:
return _context94.a(2);
}
}, _callee94);
})));
it('should highlight 12:00 [when] 12 is typed in', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee95() {
var _render77, driver, _t81;
return _regenerator().w(function (_context95) {
while (1) switch (_context95.n) {
case 0:
Date.now = vi.fn(function () {
return new Date('2021-01-01 09:12').valueOf();
});
_render77 = render(/*#__PURE__*/_react["default"].createElement(_TimeInput.TimeInput, {
locale: "lt",
__self: _this,
__source: {
fileName: _jsxFileName,
lineNumber: 972,
columnNumber: 35
}
})), driver = _render77.driver;
_context95.n = 1;
return driver.clickOnInput();
case 1:
_context95.n = 2;
return driver.setValue('12');
case 2:
_t81 = expect;
_context95.n = 3;
return driver.getHighlightedOption();
case 3:
_t81(_context95.v).toBe('12:00');
case 4:
return _context95.a(2);
}
}, _callee95);
})));
it('should highlight 01:15 [when] 1:1 is typed in', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee96() {
var _render78, driver, _t82;
return _regenerator().w(function (_context96) {
while (1) switch (_context96.n) {
case 0:
Date.now = vi.fn(function () {
return new Date('2021-01-01 09:12').valueOf();
});
_render78 = render(/*#__PURE__*/_react["default"].createElement(_TimeInput.TimeInput, {
locale: "lt",
__self: _this,
__source: {
fileName: _jsxFileName,
lineNumber: 982,
columnNumber: 35
}
})), driver = _render78.driver;
_context96.n = 1;
return driver.clickOnInput();
case 1:
_context96.n = 2;
return driver.setValue('1:1');
case 2:
_t82 = expect;
_context96.n = 3;
return driver.getHighlightedOption();
case 3:
_t82(_context96.v).toBe('01:15');
case 4:
return _context96.a(2);
}
}, _callee96);
})));
it("shouldn't highlight anything [when] 1:10 is typed in and step prop is set to 15", /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee97() {
var _render79, driver, _t83;
return _regenerator().w(function (_context97) {
while (1) switch (_context97.n) {
case 0:
Date.now = vi.fn(function () {
return new Date('2021-01-01 09:12').valueOf();
});
_render79 = render(/*#__PURE__*/_react["default"].createElement(_TimeInput.TimeInput, {
locale: "lt",
step: 15,
__self: _this,
__source: {
fileName: _jsxFileName,
lineNumber: 992,
columnNumber: 35
}
})), driver = _render79.driver;
_context97.n = 1;
return driver.clickOnInput();
case 1:
_context97.n = 2;
return driver.setValue('1:10');
case 2:
_t83 = expect;
_context97.n = 3;
return driver.getHighlightedOption();
case 3:
_t83(_context97.v).toBe(null);
case 4:
return _context97.a(2);
}
}, _callee97);
})));
it('should highlight 15:30 [when] 1530 is typed in', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee98() {
var _render80, driver, _t84;
return _regenerator().w(function (_context98) {
while (1) switch (_context98.n) {
case 0:
Date.now = vi.fn(function () {
return new Date('2021-01-01 09:12').valueOf();
});
_render80 = render(/*#__PURE__*/_react["default"].createElement(_TimeInput.TimeInput, {
locale: "lt",
__self: _this,
__source: {
fileName: _jsxFileName,
lineNumber: 1002,
columnNumber: 35
}
})), driver = _render80.driver;
_context98.n = 1;
return driver.clickOnInput();
case 1:
_context98.n = 2;
return driver.setValue('1530');
case 2:
_t84 = expect;
_context98.n = 3;
return driver.getHighlightedOption();
case 3:
_t84(_context98.v).toBe('15:30');
case 4:
return _context98.a(2);
}
}, _callee98);
})));
it('should highlight 16:45 [when] 164 is typed in', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee99() {
var _render81, driver, _t85;
return _regenerator().w(function (_context99) {
while (1) switch (_context99.n) {
case 0:
Date.now = vi.fn(function () {
return new Date('2021-01-01 09:12').valueOf();
});
_render81 = render(/*#__PURE__*/_react["default"].createElement(_TimeInput.TimeInput, {
locale: "lt",
__self: _this,
__source: {
fileName: _jsxFileName,
lineNumber: 1012,
columnNumber: 35
}
})), driver = _render81.driver;
_context99.n = 1;
return driver.clickOnInput();
case 1:
_context99.n = 2;
return driver.setValue('164');
case 2:
_t85 = expect;
_context99.n = 3;
return driver.getHighlightedOption();
case 3:
_t85(_context99.v).toBe('16:45');
case 4:
return _context99.a(2);
}
}, _callee99);
})));
});
describe('with locale where time has prefix and current time is 07:12 AM', function () {
it('should highlight 06:00 [when] 6 is typed in and locale is set to zh', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee100() {
var _render82, driver, _t86;
return _regenerator().w(function (_context100) {
while (1) switch (_context100.n) {
case 0:
Date.now = vi.fn(function () {
return new Date('2021-01-01 07:12').valueOf();
});
_render82 = render(/*#__PURE__*/_react["default"].createElement(_TimeInput.TimeInput, {
locale: "zh",
__self: _this,
__source: {
fileName: _jsxFileName,
lineNumber: 1024,
columnNumber: 35
}
})), driver = _render82.driver;
_context100.n = 1;
return driver.clickOnInput();
case 1:
_context100.n = 2;
return driver.setValue('6');
case 2:
_t86 = expect;
_context100.n = 3;
return driver.getHighlightedOption();
case 3:
_t86(_context100.v).toBe('06:00');
case 4:
return _context100.a(2);
}
}, _callee100);
})));
it('should highlight 오후 6:00 [when] 6 is typed in and locale is set to ko', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee101() {
var _render83, driver, _t87;
return _regenerator().w(function (_context101) {
while (1) switch (_context101.n) {
case 0:
Date.now = vi.fn(function () {
return new Date('2021-01-01 07:12').valueOf();
});
_render83 = render(/*#__PURE__*/_react["default"].createElement(_TimeInput.TimeInput, {
locale: "ko",
__self: _this,
__source: {
fileName: _jsxFileName,
lineNumber: 1034,
columnNumber: 35
}
})), driver = _render83.driver;
_context101.n = 1;
return driver.clickOnInput();
case 1:
_context101.n = 2;
return driver.setValue('6');
case 2:
_t87 = expect;
_context101.n = 3;
return driver.getHighlightedOption();
case 3:
_t87(_context101.v).toBe('오후 6:00');
case 4:
return _context101.a(2);
}
}, _callee101);
})));
it('should highlight 오전 8:00 [when] 08 is typed in and locale is set to ko', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee102() {
var _render84, driver, _t88;
return _regenerator().w(function (_context102) {
while (1) switch (_context102.n) {
case 0:
Date.now = vi.fn(function () {
return new Date('2021-01-01 07:12').valueOf();
});
_render84 = render(/*#__PURE__*/_react["default"].createElement(_TimeInput.TimeInput, {
locale: "ko",
__self: _this,
__source: {
fileName: _jsxFileName,
lineNumber: 1044,
columnNumber: 35
}
})), driver = _render84.driver;
_context102.n = 1;
return driver.clickOnInput();
case 1:
_context102.n = 2;
return driver.setValue('08');
case 2:
_t88 = expect;
_context102.n = 3;
return driver.getHighlightedOption();
case 3:
_t88(_context102.v).toBe('오전 8:00');
case 4:
return _context102.a(2);
}
}, _callee102);
})));
it('should highlight 08:00 [when] 上午08 is typed in and locale is set to zh', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee103() {
var _render85, driver, _t89;
return _regenerator().w(function (_context103) {
while (1) switch (_context103.n) {
case 0:
Date.now = vi.fn(function () {
return new Date('2021-01-01 07:12').valueOf();
});
_render85 = render(/*#__PURE__*/_react["default"].createElement(_TimeInput.TimeInput, {
locale: "zh",
__self: _this,
__source: {
fileName: _jsxFileName,
lineNumber: 1054,
columnNumber: 35
}
})), driver = _render85.driver;
_context103.n = 1;
return driver.clickOnInput();
case 1:
_context103.n = 2;
return driver.setValue('上午08');
case 2:
_t89 = expect;
_context103.n = 3;
return driver.getHighlightedOption();
case 3:
_t89(_context103.v).toBe('08:00');
case 4:
return _context103.a(2);
}
}, _callee103);
})));
it('should highlight 08:00 [when] 上午8 is typed in and locale is set to zh', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee104() {
var _render86, driver, _t90;
return _regenerator().w(function (_context104) {
while (1) switch (_context104.n) {
case 0:
Date.now = vi.fn(function () {
return new Date('2021-01-01 07:12').valueOf();
});
_render86 = render(/*#__PURE__*/_react["default"].createElement(_TimeInput.TimeInput, {
locale: "zh",
__self: _this,
__source: {
fileName: _jsxFileName,
lineNumber: 1064,
columnNumber: 35
}
})), driver = _render86.driver;
_context104.n = 1;
return driver.clickOnInput();
case 1:
_context104.n = 2;
return driver.setValue('上午8');
case 2:
_t90 = expect;
_context104.n = 3;
return driver.getHighlightedOption();
case 3:
_t90(_context104.v).toBe('08:00');
case 4:
return _context104.a(2);
}
}, _callee104);
})));
});
describe('with locale that has dot (.) divider and current time is 07:12', function () {
it('should highlight 13.00 [when] 13 is typed in and locale is set to fi', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee105() {
var _render87, driver, _t91;
return _regenerator().w(function (_context105) {
while (1) switch (_context105.n) {
case 0:
Date.now = vi.fn(function () {
return new Date('2021-01-01 07:12').valueOf();
});
_render87 = render(/*#__PURE__*/_react["default"].createElement(_TimeInput.TimeInput, {
locale: "fi",
__self: _this,
__source: {
fileName: _jsxFileName,
lineNumber: 1076,
columnNumber: 35
}
})), driver = _render87.driver;
_context105.n = 1;
return driver.clickOnInput();
case 1:
_context105.n = 2;
return driver.setValue('13');
case 2:
_t91 = expect;
_context105.n = 3;
return driver.getHighlightedOption();
case 3:
_t91(_context105.v).toBe('13.00');
case 4:
return _context105.a(2);
}
}, _callee105);
})));
});
});
describe('validation', function () {
describe('should show error', function () {
it.each(['a', '269', '12:8', '15:69'])('[when] value is set to %s', /*#__PURE__*/function () {
var _ref106 = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee106(value) {
var invalidMessage, _render88, driver, _t92, _t93;
return _regenerator().w(function (_context106) {
while (1) switch (_context106.n) {
case 0:
invalidMessage = 'Invalid message';
_render88 = render(/*#__PURE__*/_react["default"].createElement(_TimeInput.TimeInput, {
invalidMessage: invalidMessage,
__self: _this,
__source: {
fileName: _jsxFileName,
lineNumber: 1093,
columnNumber: 13
}
})), driver = _render88.driver;
_context106.n = 1;
return driver.clickOnInput();
case 1:
_context106.n = 2;
return driver.setValue(value);
case 2:
_t92 = expect;
_context106.n = 3;
return driver.hasStatus('error');
case 3:
_t92(_context106.v).toBe(true);
_t93 = expect;
_context106.n = 4;
return driver.getStatusMessage();
case 4:
_t93(_context106.v).toBe(invalidMessage);
case 5:
return _context106.a(2);
}
}, _callee106);
}));
return function (_x) {
return _ref106.apply(this, arguments);
};
}());
});
describe('should not set status to `error`', function () {
it.each(['上午 ', '전후 08:12', '23', '12', '5', '12:', '12:0', '15:25', '09:05 PM', '10:59 p.m.', '1000', '11 PM', '250'])('[when] value is set to %s', /*#__PURE__*/function () {
var _ref107 = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee107(value) {
var invalidMessage, _render89, driver, _t94;
return _regenerator().w(function (_context107) {
while (1) switch (_context107.n) {
case 0:
invalidMessage = 'Invalid message';
_render89 = render(/*#__PURE__*/_react["default"].createElement(_TimeInput.TimeInput, {
invalidMessage: invalidMessage,
__self: _this,
__source: {
fileName: _jsxFileName,
lineNumber: 1122,
columnNumber: 11
}
})), driver = _render89.driver;
_context107.n = 1;
return driver.clickOnInput();
case 1:
_context107.n = 2;
return driver.setValue(value);
case 2:
_t94 = expect;
_context107.n = 3;
return driver.hasStatus('error');
case 3:
_t94(_context107.v).toBe(false);
case 4:
return _context107.a(2);
}
}, _callee107);
}));
return function (_x2) {
return _ref107.apply(this, arguments);
};
}());
});
it('should set status to `error` [when] status prop is set to warning, `invalidMessage` is set and user types invalid time value', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee108() {
var status, invalidMessage, _render90, driver, _t95, _t96;
return _regenerator().w(function (_context108) {
while (1) switch (_context108.n) {
case 0:
status = 'error';
invalidMessage = 'Invalid message';
_render90 = render(/*#__PURE__*/_react["default"].createElement(_TimeInput.TimeInput, {
status: "warning",
statusMessage: "warning message",
invalidMessage: invalidMessage,
__self: _this,
__source: {
fileName: _jsxFileName,
lineNumber: 1136,
columnNumber: 9
}
})), driver = _render90.driver;
_context108.n = 1;
return driver.setValue('aa');
case 1:
_t95 = expect;
_context108.n = 2;
return driver.hasStatus(status);
case 2:
_t95(_context108.v).toBe(true);
_t96 = expect;
_context108.n = 3;
return driver.getStatusMessage();
case 3:
_t96(_context108.v).toBe(invalidMessage);
case 4:
return _context108.a(2);
}
}, _callee108);
})));
});
describe('autofill', function () {
describe.each([{
input: '10',
autofill: ':00 AM',
output: '10:00 AM',
locale: 'en'
}, {
input: '11:00 ',
autofill: 'AM',
output: '11:00 AM',
locale: 'en'
}, {
input: '12:00 A',
autofill: 'M',
output: '12:00 AM',
locale: 'en'
}, {
input: '8:',
autofill: '00 AM',
output: '8:00 AM',
locale: 'en'
}, {
input: '09:',
autofill: '00 AM',
output: '09:00 AM',
locale: 'en'
}, {
input: '09:',
autofill: '00 AM',
output: '09:00 AM',
locale: 'en'
}, {
input: '094',
autofill: '5 AM',
output: '0945 AM',
locale: 'en'
}, {
input: '13',
autofill: '0 AM',
output: '130 AM',
locale: 'en'
}, {
input: '43',
autofill: '0 AM',
output: '430 AM',
locale: 'en'
}, {
input: '05',
autofill: ':00 AM',
output: '05:00 AM',
locale: 'en'
}, {
input: '13',
autofill: ':00',
output: '13:00',
locale: 'de'
}, {
input: '22:0',
autofill: '0',
output: '22:00',
locale: 'de'
}, {
input: '6',
autofill: ':00',
output: '6:00',
locale: 'de'
}, {
input: '04',
autofill: ':00',
output: '04:00',
locale: 'de'
}, {
input: '164',
autofill: '5',
output: '1645',
locale: 'de'
}, {
input: '021',
autofill: '5',
output: '0215',
locale: 'de'
}, {
input: '233',
autofill: '0',
output: '2330',
locale: 'de'
}, {
input: '9',
autofill: ':00',
output: '9:00',
locale: 'ko'
}, {
input: '08',
autofill: ':00',
output: '08:00',
locale: 'ko'
}])('should autofill', function (_ref109) {
var input = _ref109.input,
autofill = _ref109.autofill,
output = _ref109.output,
locale = _ref109.locale;
it("with value ".concat(autofill, " [when] user types ").concat(input, " and locale is ").concat(locale), /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee109() {
var _render91, driver, _t97, _t98;
return _regenerator().w(function (_context109) {
while (1) switch (_context109.n) {
case 0:
Date.now = vi.fn(function () {
return new Date('2021-01-01 00:00').valueOf();
});
_render91 = render(/*#__PURE__*/_react["default"].createElement(_TimeInput.TimeInput, {
locale: locale,
__self: _this,
__source: {
fileName: _jsxFileName,
lineNumber: 1174,
columnNumber: 35
}
})), driver = _render91.driver;
_context109.n = 1;
return driver.setValue(input);
case 1:
_t97 = expect;
_context109.n = 2;
return driver.getAutofillValue();
case 2:
_t97(_context109.v).toContain(autofill);
_t98 = expect;
_context109.n = 3;
return driver.getInputValue();
case 3:
_t98(_context109.v).toBe(output);
case 4:
return _context109.a(2);
}
}, _callee109);
})));
});
it('should remove autofill [when] `Backspace` is pressed', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee110() {
var _render92, driver, _t99, _t100;
return _regenerator().w(function (_context110) {
while (1) switch (_context110.n) {
case 0:
Date.now = vi.fn(function () {
return new Date('2021-01-01 00:00').valueOf();
});
_render92 = render(/*#__PURE__*/_react["default"].createElement(_TimeInput.TimeInput, {
__self: _this,
__source: {
fileName: _jsxFileName,
lineNumber: 1185,
columnNumber: 33
}
})), driver = _render92.driver;
_context110.n = 1;
return driver.setValue('12:1');
case 1:
_t99 = expect;
_context110.n = 2;
return driver.getAutofillValue();
case 2:
_t99(_context110.v).toContain('5 AM');
_context110.n = 3;
return driver.pressBackspace();
case 3:
_t100 = expect;
_context110.n = 4;
return driver.getInputValue();
case 4:
_t100(_context110.v).toBe('12:1');
case 5:
return _context110.a(2);
}
}, _callee110);
})));
it('should remove one symbol [when] `Backspace` is pressed and autofill value is not shown', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee111() {
var _render93, driver, _t101, _t102;
return _regenerator().w(function (_context111) {
while (1) switch (_context111.n) {
case 0:
Date.now = vi.fn(function () {
return new Date('2021-01-01 00:00').valueOf();
});
_render93 = render(/*#__PURE__*/_react["default"].createElement(_TimeInput.TimeInput, {
__self: _this,
__source: {
fileName: _jsxFileName,
lineNumber: 1197,
columnNumber: 33
}
})), driver = _render93.driver;
_context111.n = 1;
return driver.setValue('12:2');
case 1:
_t101 = expect;
_context111.n = 2;
return driver.getAutofillValue();
case 2:
_t101(_context111.v).toBeNull();
_context111.n = 3;
return driver.pressBackspace();
case 3:
_t102 = expect;
_context111.n = 4;
return driver.getInputValue();
case 4:
_t102(_context111.v).toBe('12:');
case 5:
return _context111.a(2);
}
}, _callee111);
})));
it('should confirm autofill value [when] `Enter` is pressed', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee112() {
var _render94, driver, _t103, _t104, _t105;
return _regenerator().w(function (_context112) {
while (1) switch (_context112.n) {
case 0:
Date.now = vi.fn(function () {
return new Date('2021-01-01 00:00').valueOf();
});
_render94 = render(/*#__PURE__*/_react["default"].createElement(_TimeInput.TimeInput, {
__self: _this,
__source: {
fileName: _jsxFileName,
lineNumber: 1209,
columnNumber: 33
}
})), driver = _render94.driver;
_context112.n = 1;
return driver.setValue('12');
case 1:
_t103 = expect;
_context112.n = 2;
return driver.getAutofillValue();
case 2:
_t103(_context112.v).toContain(':15 AM');
_context112.n = 3;
return driver.pressKey('Enter');
case 3:
_t104 = expect;
_context112.n = 4;
return driver.getInputValue();
case 4:
_t104(_context112.v).toBe('12:15 AM');
_t105 = expect;
_context112.n = 5;
return driver.getAutofillValue();
case 5:
_t105(_context112.v).toBeNull();
case 6:
return _context112.a(2);
}
}, _callee112);
})));
});
describe('custom value', function () {
describe.each([{
input: '3:48',
confirmedInput: '3:48 AM'
}, {
input: '5:5',
confirmedInput: '5:50 AM'
}, {
input: '7:26 A',
confirmedInput: '7:26 AM'
}, {
input: '7:26 p.m.',
confirmedInput: '7:26 PM'
}, {
input: '7:26 p.',
confirmedInput: '7:26 PM'
}, {
input: '1120',
confirmedInput: '11:20 AM'
}, {
input: '1018 pm',
confirmedInput: '10:18 PM'
}, {
input: '1538',
confirmedInput: '3:38 PM'
}, {
input: '456',
confirmedInput: '4:56 AM'
}, {
input: '129 pm',
confirmedInput: '1:29 PM'
}, {
input: '123',
confirmedInput: '1:23 AM'
}, {
input: '615',
confirmedInput: '6:15 AM'
}, {
input: '00',
confirmedInput: '12:00 AM'
}, {
input: '0',
confirmedInput: '12:00 AM'
}])('should set value to', function (_ref114) {
var input = _ref114.input,
confirmedInput = _ref114.confirmedInput;
it("".concat(confirmedInput, " [when] ").concat(input, " is typed in"), /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee113() {
var _render95, driver, _t106, _t107;
return _regenerator().w(function (_context113) {
while (1) switch (_context113.n) {
case 0:
_render95 = render(/*#__PURE__*/_react["default"].createElement(_TimeInput.TimeInput, {
__self: _this,
__source: {
fileName: _jsxFileName,
lineNumber: 1240,
columnNumber: 35
}
})), driver = _render95.driver;
_context113.n = 1;
return driver.setValue(input);
case 1:
_context113.n = 2;
return driver.confirmValue();
case 2:
_t106 = expect;
_context113.n = 3;
return driver.getInputValue();
case 3:
_t106(_context113.v).toBe(confirmedInput);
_t107 = expect;
_context113.n = 4;
return driver.hasStatus('error');
case 4:
_t107(_context113.v).toBe(false);
case 5:
return _context113.a(2);
}
}, _callee113);
})));
});
describe.each([{
input: '7:26 PTG',
confirmedInput: '7:26 PTG',
locale: 'ms'
}, {
input: '7:26 PG ',
confirmedInput: '7:26 PG',
locale: 'ms'
}, {
input: '7:26 μ.μ.',
confirmedInput: '7:26 μ.μ.',
locale: 'el'
}, {
input: '7:26 π.μ.',
confirmedInput: '7:26 π.μ.',
locale: 'el'
}, {
input: '12:24 م',
confirmedInput: '12:24 م',
locale: 'ar'
}, {
input: '12:18 ص',
confirmedInput: '12:18 ص',
locale: 'ar'
}, {
input: '11:28',
confirmedInput: '11:28',
locale: 'zh'
}, {
input: '23:28',
confirmedInput: '23:28',
locale: 'zh'
}, {
input: '오전 11:28',
confirmedInput: '오전 11:28',
locale: 'ko'
}, {
input: '오후 11:28',
confirmedInput: '오후 11:28',
locale: 'ko'
}, {
input: '4:21 a. m.',
confirmedInput: '4:21 a.m.',
locale: 'es-US'
}, {
input: '4:21 p. m.',
confirmedInput: '4:21 p.m.',
locale: 'es-US'
}, {
input: '111',
confirmedInput: '11:15',
locale: 'de'
}, {
input: '112',
confirmedInput: '11:20',
locale: 'de'
}, {
input: '1243',
confirmedInput: '12:43',
locale: 'de'
}, {
input: '235',
confirmedInput: '23:50',
locale: 'de'
}, {
input: '35',
confirmedInput: '03:50',
locale: 'de'
}, {
input: '24',
confirmedInput: '02:40',
locale: 'de'
}, {
input: '111',
confirmedInput: '1:11 AM',
locale: 'en'
}, {
input: '45',
confirmedInput: '4:50 AM',
locale: 'en'
}])('should set value to', function (_ref116) {
var input = _ref116.input,
confirmedInput = _ref116.confirmedInput,
locale = _ref116.locale;
it("".concat(confirmedInput, " [when] ").concat(input, " is typed in and locale is set to ").concat(locale), /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee114() {
var _render96, driver, _t108, _t109;
return _regenerator().w(function (_context114) {
while (1) switch (_context114.n) {
case 0:
_render96 = render(/*#__PURE__*/_react["default"].createElement(_TimeInput.TimeInput, {
locale: locale,
__self: _this,
__source: {
fileName: _jsxFileName,
lineNumber: 1273,
columnNumber: 35
}
})), driver = _render96.driver;
_context114.n = 1;
return driver.setValue(input);
case 1:
_context114.n = 2;
return driver.confirmValue();
case 2:
_t108 = expect;
_context114.n = 3;
return driver.getInputValue();
case 3:
_t108(_context114.v).toBe(confirmedInput);
_t109 = expect;
_context114.n = 4;
return driver.hasStatus('error');
case 4:
_t109(_context114.v).toBe(false);
case 5:
return _context114.a(2);
}
}, _callee114);
})));
});
});
describe('focus callbacks', function () {
it('should call onFocus and onBlur [when] user clicks on input and then confirms value', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee115() {
var onFocus, onBlur, _render97, driver;
return _regenerator().w(function (_context115) {
while (1) switch (_context115.n) {
case 0:
onFocus = vi.fn();
onBlur = vi.fn();
_render97 = render(/*#__PURE__*/_react["default"].createElement(_TimeInput.TimeInput, {
onFocus: onFocus,
onBlur: onBlur,
__self: _this,
__source: {
fileName: _jsxFileName,
lineNumber: 1290,
columnNumber: 9
}
})), driver = _render97.driver;
_context115.n = 1;
return driver.clickOnInput();
case 1:
expect(onFocus).toHaveBeenCalled();
_context115.n = 2;
return driver.confirmValue();
case 2:
expect(onBlur).toHaveBeenCalled();
case 3:
return _context115.a(2);
}
}, _callee115);
})));
});
describe('filterTime', function () {
it('should show time slots according to filter [when] `filterTime` prop is passed', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee116() {
var value, _render98, driver, _t110, _t111, _t112, _t113;
return _regenerator().w(function (_context116) {
while (1) switch (_context116.n) {
case 0:
value = new Date('2020-01-01 12:00');
_render98 = render(/*#__PURE__*/_react["default"].createElement(_TimeInput.TimeInput, {
value: value,
filterTime: function filterTime(time) {
return time < value;
},
__self: _this,
__source: {
fileName: _jsxFileName,
lineNumber: 1305,
columnNumber: 9
}
})), driver = _render98.driver;
_context116.n = 1;
return driver.clickOnInput();
case 1:
_t110 = expect;
_context116.n = 2;
return driver.isDropdownShown();
case 2:
_t110(_context116.v).toBeTruthy();
_t111 = expect;
_context116.n = 3;
return driver.optionsCount();
case 3:
_t111(_context116.v).toEqual(48);
_t112 = expect;
_context116.n = 4;
return driver.optionContentAt(0);
case 4:
_t112(_context116.v).toEqual('12:00 AM');
_t113 = expect;
_context116.n = 5;
return driver.optionContentAt(47);
case 5:
_t113(_context116.v).toEqual('11:45 AM');
case 6:
return _context116.a(2);
}
}, _callee116);
})));
it('should show error [when] `filterTime` set and entered time that does not satisfy filter', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee117() {
var value, onChange, invalidMessage, _render99, driver, _t114, _t115;
return _regenerator().w(function (_context117) {
while (1) switch (_context117.n) {
case 0:
value = new Date('2020-01-01 12:00');
onChange = vi.fn();
invalidMessage = 'Invalid message';
_render99 = render(/*#__PURE__*/_react["default"].createElement(_TimeInput.TimeInput, {
value: value,
onChange: onChange,
filterTime: function filterTime(time) {
return time < value;
},
invalidMessage: invalidMessage,
__self: _this,
__source: {
fileName: _jsxFileName,
lineNumber: 1323,
columnNumber: 9
}
})), driver = _render99.driver;
_context117.n = 1;
return driver.setValue('13:45 PM');
case 1:
_context117.n = 2;
return driver.confirmValue();
case 2:
_t114 = expect;
_context117.n = 3;
return driver.hasStatus('error');
case 3:
_t114(_context117.v).toBeTruthy();
_t115 = expect;
_context117.n = 4;
return driver.getStatusMessage();
case 4:
_t115(_context117.v).toBe(invalidMessage);
expect(onChange).not.toHaveBeenCalled();
case 5:
return _context117.a(2);
}
}, _callee117);
})));
it('should call onInvalid with "outOfBoundsError" [when] entered time does not satisfy filter', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee118() {
var value, onInvalid, _render100, driver, invalidValue;
return _regenerator().w(function (_context118) {
while (1) switch (_context118.n) {
case 0:
value = new Date('2020-01-01 12:00');
onInvalid = vi.fn();
_render100 = render(/*#__PURE__*/_react["default"].createElement(_TimeInput.TimeInput, {
value: value,
onInvalid: onInvalid,
filterTime: function filterTime(time) {
return time < value;
},
__self: _this,
__source: {
fileName: _jsxFileName,
lineNumber: 1343,
columnNumber: 9
}
})), driver = _render100.driver;
invalidValue = '1:45 PM';
_context118.n = 1;
return driver.setValue(invalidValue);
case 1:
_context118.n = 2;
return driver.confirmValue();
case 2:
expect(onInvalid).toHaveBeenCalledWith({
validationType: 'outOfBoundsError',
value: invalidValue
});
case 3:
return _context118.a(2);
}
}, _callee118);
})));
it('should call `onChange` [when] `filterTime` set and entered time that satisfies filter', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee119() {
var value, onChange, _render101, driver;
return _regenerator().w(function (_context119) {
while (1) switch (_context119.n) {
case 0:
value = new Date('2020-01-01 12:00');
onChange = vi.fn();
_render101 = render(/*#__PURE__*/_react["default"].createElement(_TimeInput.TimeInput, {
value: value,
onChange: onChange,
filterTime: function filterTime(time) {
return time < value;
},
__self: _this,
__source: {
fileName: _jsxFileName,
lineNumber: 1365,
columnNumber: 9
}
})), driver = _render101.driver;
_context119.n = 1;
return driver.setValue('10:45 AM');
case 1:
_context119.n = 2;
return driver.confirmValue();
case 2:
expect(onChange).toHaveBeenCalledWith({
date: new Date('2020-01-01 10:45')
});
case 3:
return _context119.a(2);
}
}, _callee119);
})));
});
describe('excludePastTimes', function () {
var mockDateNow = new Date('2020-01-01 11:59');
var DateReal;
beforeEach(function () {
DateReal = global.Date;
global.Date = /*#__PURE__*/function (_DateReal) {
function _class() {
(0, _classCallCheck2["default"])(this, _class);
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
return _callSuper(this, _class, (0, _toConsumableArray2["default"])(args.length ? args : [mockDateNow]));
}
(0, _inherits2["default"])(_class, _DateReal);
return (0, _createClass2["default"])(_class);
}(DateReal);
});
afterEach(function () {
global.Date = DateReal;
});
it('should not show past time slots [when] `excludePastTimes` prop is passed', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee120() {
var value, _render102, driver, _t116, _t117, _t118, _t119;
return _regenerator().w(function (_context120) {
while (1) switch (_context120.n) {
case 0:
value = new Date('2020-01-01 12:00');
_render102 = render(/*#__PURE__*/_react["default"].createElement(_TimeInput.TimeInput, {
value: value,
excludePastTimes: true,
__self: _this,
__source: {
fileName: _jsxFileName,
lineNumber: 1399,
columnNumber: 33
}
})), driver = _render102.driver;
_context120.n = 1;
return driver.clickOnInput();
case 1:
_t116 = expect;
_context120.n = 2;
return driver.isDropdownShown();
case 2:
_t116(_context120.v).toBeTruthy();
_t117 = expect;
_context120.n = 3;
return driver.optionsCount();
case 3:
_t117(_context120.v).toEqual(48);
_t118 = expect;
_context120.n = 4;
return driver.optionContentAt(0);
case 4:
_t118(_context120.v).toEqual('12:00 PM');
_t119 = expect;
_context120.n = 5;
return driver.optionContentAt(47);
case 5:
_t119(_context120.v).toEqual('11:45 PM');
case 6:
return _context120.a(2);
}
}, _callee120);
})));
it('should set status to `error` [when] `excludePastTimes` set and custom past time entered', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee121() {
var value, invalidMessage, onChange, _render103, driver, _t120, _t121;
return _regenerator().w(function (_context121) {
while (1) switch (_context121.n) {
case 0:
value = new Date('2020-01-01 12:00');
invalidMessage = 'Invalid value';
onChange = vi.fn();
_render103 = render(/*#__PURE__*/_react["default"].createElement(_TimeInput.TimeInput, {
value: value,
onChange: onChange,
excludePastTimes: true,
invalidMessage: invalidMessage,
__self: _this,
__source: {
fileName: _jsxFileName,
lineNumber: 1416,
columnNumber: 9
}
})), driver = _render103.driver;
_context121.n = 1;
return driver.setValue('10:45 AM');
case 1:
_context121.n = 2;
return driver.confirmValue();
case 2:
_t120 = expect;
_context121.n = 3;
return driver.hasStatus('error');
case 3:
_t120(_context121.v).toBeTruthy();
_t121 = expect;
_context121.n = 4;
return driver.getStatusMessage();
case 4:
_t121(_context121.v).toBe(invalidMessage);
expect(onChange).not.toHaveBeenCalled();
case 5:
return _context121.a(2);
}
}, _callee121);
})));
it('should call onInvalid with "outOfBoundsError" [when] custom past time entered', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee122() {
var value, onChange, onInvalid, _render104, driver, invalidValue;
return _regenerator().w(function (_context122) {
while (1) switch (_context122.n) {
case 0:
value = new Date('2020-01-01 12:00');
onChange = vi.fn();
onInvalid = vi.fn();
_render104 = render(/*#__PURE__*/_react["default"].createElement(_TimeInput.TimeInput, {
value: value,
onChange: onChange,
onInvalid: onInvalid,
excludePastTimes: true,
__self: _this,
__source: {
fileName: _jsxFileName,
lineNumber: 1438,
columnNumber: 9
}
})), driver = _render104.driver;
invalidValue = '10:45 AM';
_context122.n = 1;
return driver.setValue(invalidValue);
case 1:
_context122.n = 2;
return driver.confirmValue();
case 2:
expect(onInvalid).toHaveBeenCalledWith({
validationType: 'outOfBoundsError',
value: invalidValue
});
expect(onChange).not.toHaveBeenCalled();
case 3:
return _context122.a(2);
}
}, _callee122);
})));
it('should call `onChange` [when] `excludePastTimes` set and custom future time entered', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee123() {
var value, onChange, _render105, driver;
return _regenerator().w(function (_context123) {
while (1) switch (_context123.n) {
case 0:
value = new Date('2020-01-01 12:00');
onChange = vi.fn();
_render105 = render(/*#__PURE__*/_react["default"].createElement(_TimeInput.TimeInput, {
value: value,
onChange: onChange,
excludePastTimes: true,
__self: _this,
__source: {
fileName: _jsxFileName,
lineNumber: 1462,
columnNumber: 9
}
})), driver = _render105.driver;
_context123.n = 1;
return driver.setValue('01:45 PM');
case 1:
_context123.n = 2;
return driver.confirmValue();
case 2:
expect(onChange).toHaveBeenCalledWith({
date: new Date('2020-01-01 13:45')
});
case 3:
return _context123.a(2);
}
}, _callee123);
})));
});
});