@wix/design-system
Version:
@wix/design-system
1,843 lines • 84 kB
JavaScript
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
var _react = _interopRequireDefault(require("react"));
var _ = require("..");
var _react2 = require("../../utils/test-utils/react");
var _CalendarUni = require("../Calendar.uni.driver");
var _LocaleUtils = require("../../common/LocaleUtils/LocaleUtils");
var _WixStyleReactEnvironmentProvider = require("../../WixStyleReactEnvironmentProvider");
var _jsxFileName = "/home/builduser/work/57e038ea7326c1ec/packages/wix-design-system/dist/cjs/Calendar/test/Calendar.spec.jsx";
function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
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); }
var isFirstLetterCapitalized = function isFirstLetterCapitalized(str) {
return str && str.length && str[0] === str[0].toLocaleUpperCase();
};
describe('Calendar', function () {
describe('[async]', function () {
runTests((0, _react2.createRendererWithUniDriver)(_CalendarUni.calendarUniDriverFactory));
});
function runTests(render) {
var _this = this;
afterEach(function () {
return (0, _react2.cleanup)();
});
var AUGUST = 7,
SEPTEMBER = 8,
OCTOBER = 9,
NOVEMBER = 10;
var monthNames = 'January February March April May June July August September October November December'.split(' ');
describe('rendering the Calendar', function () {
it('should display years from current date to 15 years into the future and past in the year drop-down', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee() {
var _render, driver, yearDriver, options, actualYears, currentYear, expectedYears, year;
return _regenerator().w(function (_context) {
while (1) switch (_context.n) {
case 0:
_render = render(/*#__PURE__*/_react["default"].createElement(_.Calendar, {
showYearDropdown: true,
onChange: function onChange() {},
__self: _this,
__source: {
fileName: _jsxFileName,
lineNumber: 35,
columnNumber: 11
}
})), driver = _render.driver;
_context.n = 1;
return driver.getYearDropdownDriver();
case 1:
yearDriver = _context.v;
_context.n = 2;
return yearDriver.options();
case 2:
options = _context.v;
_context.n = 3;
return Promise.all(options.map(function (_ref2) {
var content = _ref2.content;
return content();
}));
case 3:
actualYears = _context.v;
currentYear = new Date().getFullYear();
expectedYears = [];
for (year = currentYear + 15; year > currentYear - 30; year--) {
expectedYears.push(year.toString());
}
// Adding loader content
expectedYears.push('');
expect(actualYears).toEqual(expectedYears);
case 4:
return _context.a(2);
}
}, _callee);
})));
it('should display the month of the {from} Date if the provided value is {from, to}', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee2() {
var _render2, driver, _t;
return _regenerator().w(function (_context2) {
while (1) switch (_context2.n) {
case 0:
_render2 = render(/*#__PURE__*/_react["default"].createElement(_.Calendar, {
value: {
from: new Date(2018, OCTOBER, 5),
to: new Date(2018, NOVEMBER, 7)
},
onChange: function onChange() {},
__self: _this,
__source: {
fileName: _jsxFileName,
lineNumber: 58,
columnNumber: 11
}
})), driver = _render2.driver;
_t = expect;
_context2.n = 1;
return driver.getMonthCaption();
case 1:
_t(_context2.v).toEqual(monthNames[OCTOBER]);
case 2:
return _context2.a(2);
}
}, _callee2);
})));
it('should display the month of the {from} Date if the provided value is {from}', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee3() {
var _render3, driver, _t2;
return _regenerator().w(function (_context3) {
while (1) switch (_context3.n) {
case 0:
_render3 = render(/*#__PURE__*/_react["default"].createElement(_.Calendar, {
value: {
from: new Date(2018, OCTOBER, 5)
},
onChange: function onChange() {},
__self: _this,
__source: {
fileName: _jsxFileName,
lineNumber: 72,
columnNumber: 11
}
})), driver = _render3.driver;
_t2 = expect;
_context3.n = 1;
return driver.getMonthCaption();
case 1:
_t2(_context3.v).toEqual(monthNames[OCTOBER]);
case 2:
return _context3.a(2);
}
}, _callee3);
})));
it('should capitalize first letter of month in certain languages', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee4() {
var _iterator, _step, locale, _render4, driver, monthCaption, _t3;
return _regenerator().w(function (_context4) {
while (1) switch (_context4.p = _context4.n) {
case 0:
_iterator = _createForOfIteratorHelper(_LocaleUtils.CAPITALIZED_MONTH_LANGUAGES);
_context4.p = 1;
_iterator.s();
case 2:
if ((_step = _iterator.n()).done) {
_context4.n = 5;
break;
}
locale = _step.value;
_render4 = render(/*#__PURE__*/_react["default"].createElement(_.Calendar, {
value: {
from: new Date(2018, OCTOBER, 5)
},
onChange: function onChange() {},
locale: locale,
__self: _this,
__source: {
fileName: _jsxFileName,
lineNumber: 84,
columnNumber: 13
}
})), driver = _render4.driver;
_context4.n = 3;
return driver.getMonthCaption();
case 3:
monthCaption = _context4.v;
expect(isFirstLetterCapitalized(monthCaption)).toBe(true);
case 4:
_context4.n = 2;
break;
case 5:
_context4.n = 7;
break;
case 6:
_context4.p = 6;
_t3 = _context4.v;
_iterator.e(_t3);
case 7:
_context4.p = 7;
_iterator.f();
return _context4.f(7);
case 8:
return _context4.a(2);
}
}, _callee4, null, [[1, 6, 7, 8]]);
})));
it('should display the month of the {to} Date if the provided value is {to}', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee5() {
var _render5, driver, _t4;
return _regenerator().w(function (_context5) {
while (1) switch (_context5.n) {
case 0:
_render5 = render(/*#__PURE__*/_react["default"].createElement(_.Calendar, {
value: {
to: new Date(2018, NOVEMBER, 7)
},
onChange: function onChange() {},
__self: _this,
__source: {
fileName: _jsxFileName,
lineNumber: 98,
columnNumber: 11
}
})), driver = _render5.driver;
_t4 = expect;
_context5.n = 1;
return driver.getMonthCaption();
case 1:
_t4(_context5.v).toEqual(monthNames[NOVEMBER]);
case 2:
return _context5.a(2);
}
}, _callee5);
})));
it('should display the month of the Date if the provided value is a single Date', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee6() {
var _render6, driver, _t5;
return _regenerator().w(function (_context6) {
while (1) switch (_context6.n) {
case 0:
_render6 = render(/*#__PURE__*/_react["default"].createElement(_.Calendar, {
value: new Date(2018, NOVEMBER, 7),
onChange: function onChange() {},
__self: _this,
__source: {
fileName: _jsxFileName,
lineNumber: 109,
columnNumber: 11
}
})), driver = _render6.driver;
_t5 = expect;
_context6.n = 1;
return driver.getMonthCaption();
case 1:
_t5(_context6.v).toEqual(monthNames[NOVEMBER]);
case 2:
return _context6.a(2);
}
}, _callee6);
})));
it('should display the current month if the provided value is undefined', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee7() {
var _render7, driver, _t6;
return _regenerator().w(function (_context7) {
while (1) switch (_context7.n) {
case 0:
_render7 = render(/*#__PURE__*/_react["default"].createElement(_.Calendar, {
onChange: function onChange() {},
__self: _this,
__source: {
fileName: _jsxFileName,
lineNumber: 116,
columnNumber: 35
}
})), driver = _render7.driver;
_t6 = expect;
_context7.n = 1;
return driver.getMonthCaption();
case 1:
_t6(_context7.v).toEqual(monthNames[new Date().getMonth()]);
case 2:
return _context7.a(2);
}
}, _callee7);
})));
it('should display the current month if the provided value is an empty object', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee8() {
var _render8, driver, _t7;
return _regenerator().w(function (_context8) {
while (1) switch (_context8.n) {
case 0:
_render8 = render(/*#__PURE__*/_react["default"].createElement(_.Calendar, {
value: {},
onChange: function onChange() {},
__self: _this,
__source: {
fileName: _jsxFileName,
lineNumber: 124,
columnNumber: 35
}
})), driver = _render8.driver;
_t7 = expect;
_context8.n = 1;
return driver.getMonthCaption();
case 1:
_t7(_context8.v).toEqual(monthNames[new Date().getMonth()]);
case 2:
return _context8.a(2);
}
}, _callee8);
})));
it('should have 5 selected dates', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee9() {
var _render9, driver, _t8;
return _regenerator().w(function (_context9) {
while (1) switch (_context9.n) {
case 0:
_render9 = render(/*#__PURE__*/_react["default"].createElement(_.Calendar, {
value: {
from: new Date(2018, 10, 5),
to: new Date(2018, 10, 9)
},
onChange: function onChange() {},
selectionMode: "range",
__self: _this,
__source: {
fileName: _jsxFileName,
lineNumber: 132,
columnNumber: 11
}
})), driver = _render9.driver;
_t8 = expect;
_context9.n = 1;
return driver.getNumOfSelectedDays();
case 1:
_t8(_context9.v).toBe(5);
case 2:
return _context9.a(2);
}
}, _callee9);
})));
});
describe('`filterDate` prop', function () {
it('should not affect calendar if date is modified', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee0() {
var date, _render0, driver, _t9;
return _regenerator().w(function (_context0) {
while (1) switch (_context0.n) {
case 0:
date = new Date(2017, 9, 2);
_render0 = render(/*#__PURE__*/_react["default"].createElement(_.Calendar, {
onChange: function onChange() {},
filterDate: function filterDate(_date) {
_date.setUTCDate(3);
return false;
},
value: date,
__self: _this,
__source: {
fileName: _jsxFileName,
lineNumber: 150,
columnNumber: 11
}
})), driver = _render0.driver;
_t9 = expect;
_context0.n = 1;
return driver.getSelectedDay();
case 1:
_t9(_context0.v).toBe('2');
case 2:
return _context0.a(2);
}
}, _callee0);
})));
});
describe('onClose', function () {
it('should be call with default not prevented when closing with ESC key', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee1() {
var onCloseMock, value, _render1, driver;
return _regenerator().w(function (_context1) {
while (1) switch (_context1.n) {
case 0:
onCloseMock = vi.fn();
value = new Date(2018, 10, 5);
_render1 = render(/*#__PURE__*/_react["default"].createElement(_.Calendar, {
value: value,
onChange: function onChange() {},
onClose: onCloseMock,
shouldCloseOnSelect: false,
__self: _this,
__source: {
fileName: _jsxFileName,
lineNumber: 169,
columnNumber: 11
}
})), driver = _render1.driver;
_context1.n = 1;
return driver.clickDay(new Date(2018, 10, 1));
case 1:
_context1.n = 2;
return driver.triggerKeyDown({
key: 'Escape',
keyCode: 27
});
case 2:
expect(onCloseMock).toHaveBeenCalledTimes(1);
expect(onCloseMock.mock.calls[0][0].type).toEqual('keydown');
expect(onCloseMock.mock.calls[0][0].defaultPrevented).toBeFalsy();
case 3:
return _context1.a(2);
}
}, _callee1);
})));
});
describe('Prevent Default', function () {
it('should prevent default when clicking in header parts', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee10() {
var eventListenerMock, dataHook, _render10, driver;
return _regenerator().w(function (_context10) {
while (1) switch (_context10.n) {
case 0:
eventListenerMock = vi.fn(function (event) {
return event.persist();
});
dataHook = 'calendar-data-hook'; // We use a label wrapper, since a label's default is to delegate the click on to it's target. Just to demonstrate that this is a use-case that needs to be prevented.
_render10 = render(/*#__PURE__*/_react["default"].createElement("label", {
onClick: eventListenerMock,
__self: _this,
__source: {
fileName: _jsxFileName,
lineNumber: 195,
columnNumber: 11
}
}, /*#__PURE__*/_react["default"].createElement(_.Calendar, {
dataHook: dataHook,
onChange: function onChange() {},
showYearDropdown: true,
showMonthDropdown: true,
__self: _this,
__source: {
fileName: _jsxFileName,
lineNumber: 196,
columnNumber: 13
}
})), {
dataHook: dataHook
}), driver = _render10.driver;
_context10.n = 1;
return driver.clickOnPrevMonthButton();
case 1:
_context10.n = 2;
return driver.clickOnNextMonthButton();
case 2:
_context10.n = 3;
return driver.clickOnYearDropdown();
case 3:
_context10.n = 4;
return driver.clickOnMonthDropdown();
case 4:
expect(eventListenerMock).toHaveBeenCalledTimes(4);
expect(eventListenerMock.mock.calls[0][0].defaultPrevented).toEqual(true);
expect(eventListenerMock.mock.calls[1][0].defaultPrevented).toEqual(true);
expect(eventListenerMock.mock.calls[2][0].defaultPrevented).toEqual(true);
expect(eventListenerMock.mock.calls[3][0].defaultPrevented).toEqual(true);
case 5:
return _context10.a(2);
}
}, _callee10);
})));
});
it('should call onMonthChange with the current month first day when changing the displayed month', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee11() {
var currentMonth, date, expectedMonth, onMonthChange, _render11, driver, onMonthChangeValue;
return _regenerator().w(function (_context11) {
while (1) switch (_context11.n) {
case 0:
currentMonth = 2;
date = new Date(2021, currentMonth, 1);
expectedMonth = new Date(2021, currentMonth + 1, 1);
onMonthChange = vi.fn();
_render11 = render(/*#__PURE__*/_react["default"].createElement(_.Calendar, {
value: date,
onMonthChange: onMonthChange,
onChange: function onChange() {},
selectionMode: "day",
__self: _this,
__source: {
fileName: _jsxFileName,
lineNumber: 233,
columnNumber: 9
}
})), driver = _render11.driver;
expect(onMonthChange).toHaveBeenCalledTimes(0);
_context11.n = 1;
return driver.clickOnNextMonthButton();
case 1:
expect(onMonthChange).toHaveBeenCalledTimes(1);
onMonthChangeValue = onMonthChange.mock.calls[0][0];
expect(onMonthChangeValue.toLocaleDateString()).toEqual(expectedMonth.toLocaleDateString());
case 2:
return _context11.a(2);
}
}, _callee11);
})));
it('should call onMonthChange with the current month first day when navigating with keyboard (next year)', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee12() {
var currentYear, date, expectedMonth, onMonthChange, _render12, driver, onMonthChangeValue;
return _regenerator().w(function (_context12) {
while (1) switch (_context12.n) {
case 0:
currentYear = 2021;
date = new Date(currentYear, 1, 1);
expectedMonth = new Date(currentYear + 1, 1, 1);
onMonthChange = vi.fn();
_render12 = render(/*#__PURE__*/_react["default"].createElement(_.Calendar, {
value: date,
onMonthChange: onMonthChange,
onChange: function onChange() {},
selectionMode: "day",
__self: _this,
__source: {
fileName: _jsxFileName,
lineNumber: 257,
columnNumber: 9
}
})), driver = _render12.driver;
expect(onMonthChange).toHaveBeenCalledTimes(0);
_context12.n = 1;
return driver.keyboardNextYear();
case 1:
expect(onMonthChange).toHaveBeenCalledTimes(1);
onMonthChangeValue = onMonthChange.mock.calls[0][0];
expect(onMonthChangeValue.toLocaleDateString()).toEqual(expectedMonth.toLocaleDateString());
case 2:
return _context12.a(2);
}
}, _callee12);
})));
it('should call onMonthChange with the current month first day when navigating with keyboard (previous year)', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee13() {
var currentYear, date, expectedMonth, onMonthChange, _render13, driver, onMonthChangeValue;
return _regenerator().w(function (_context13) {
while (1) switch (_context13.n) {
case 0:
currentYear = 2021;
date = new Date(currentYear, 1, 1);
expectedMonth = new Date(currentYear - 1, 1, 1);
onMonthChange = vi.fn();
_render13 = render(/*#__PURE__*/_react["default"].createElement(_.Calendar, {
value: date,
onMonthChange: onMonthChange,
onChange: function onChange() {},
selectionMode: "day",
__self: _this,
__source: {
fileName: _jsxFileName,
lineNumber: 281,
columnNumber: 9
}
})), driver = _render13.driver;
expect(onMonthChange).toHaveBeenCalledTimes(0);
_context13.n = 1;
return driver.keyboardPrevYear();
case 1:
expect(onMonthChange).toHaveBeenCalledTimes(1);
onMonthChangeValue = onMonthChange.mock.calls[0][0];
expect(onMonthChangeValue.toLocaleDateString()).toEqual(expectedMonth.toLocaleDateString());
case 2:
return _context13.a(2);
}
}, _callee13);
})));
describe('clicking on a day', function () {
var onChange;
beforeEach(function () {
onChange = vi.fn();
});
describe("with selectionMode='day'", function () {
it('should call onChange with the clicked day', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee14() {
var date, _render14, driver;
return _regenerator().w(function (_context14) {
while (1) switch (_context14.n) {
case 0:
date = new Date(2018, 10, 5);
_render14 = render(/*#__PURE__*/_react["default"].createElement(_.Calendar, {
value: date,
onChange: onChange,
selectionMode: "day",
__self: _this,
__source: {
fileName: _jsxFileName,
lineNumber: 310,
columnNumber: 13
}
})), driver = _render14.driver;
expect(onChange).toHaveBeenCalledTimes(0);
_context14.n = 1;
return driver.clickDay(new Date(2018, 10, 1));
case 1:
expect(onChange).toHaveBeenCalledTimes(1);
expect(onChange.mock.calls[0][0].getDate()).toEqual(1);
case 2:
return _context14.a(2);
}
}, _callee14);
})));
it('should prevent event default', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee15() {
var dataHook, date, eventListenerMock, _render15, driver;
return _regenerator().w(function (_context15) {
while (1) switch (_context15.n) {
case 0:
dataHook = 'calendar-data-hook';
date = new Date(2018, 10, 5);
eventListenerMock = vi.fn();
_render15 = render(/*#__PURE__*/_react["default"].createElement("div", {
onClick: eventListenerMock,
__self: _this,
__source: {
fileName: _jsxFileName,
lineNumber: 326,
columnNumber: 13
}
}, /*#__PURE__*/_react["default"].createElement(_.Calendar, {
value: date,
onChange: onChange,
selectionMode: "day",
dataHook: dataHook,
__self: _this,
__source: {
fileName: _jsxFileName,
lineNumber: 327,
columnNumber: 15
}
})), {
dataHook: dataHook
}), driver = _render15.driver;
_context15.n = 1;
return driver.clickDay(new Date(2018, 10, 1));
case 1:
expect(eventListenerMock).toHaveBeenCalledTimes(1);
expect(eventListenerMock.mock.calls[0][0].defaultPrevented).toEqual(true);
case 2:
return _context15.a(2);
}
}, _callee15);
})));
it('should call `onClose` callback with event', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee16() {
var date, onCloseMock, _render16, driver;
return _regenerator().w(function (_context16) {
while (1) switch (_context16.n) {
case 0:
date = new Date(2018, 10, 5);
onCloseMock = vi.fn();
_render16 = render(/*#__PURE__*/_react["default"].createElement(_.Calendar, {
value: date,
onChange: onChange,
selectionMode: "day",
onClose: onCloseMock,
shouldCloseOnSelect: true,
__self: _this,
__source: {
fileName: _jsxFileName,
lineNumber: 349,
columnNumber: 13
}
})), driver = _render16.driver;
_context16.n = 1;
return driver.clickDay(new Date(2018, 10, 1));
case 1:
expect(onCloseMock).toHaveBeenCalledTimes(1);
expect(onCloseMock.mock.calls[0][0].type).toEqual('click');
case 2:
return _context16.a(2);
}
}, _callee16);
})));
});
describe("with selectionMode='range'", function () {
it('should call onChange({from: $clickedDay}) when value is undefined', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee17() {
var _render17, driver;
return _regenerator().w(function (_context17) {
while (1) switch (_context17.n) {
case 0:
_render17 = render(/*#__PURE__*/_react["default"].createElement(_.Calendar, {
onChange: onChange,
selectionMode: "range",
__self: _this,
__source: {
fileName: _jsxFileName,
lineNumber: 368,
columnNumber: 13
}
})), driver = _render17.driver;
_context17.n = 1;
return driver.clickOnNthDay(0);
case 1:
expect(onChange).toHaveBeenCalledTimes(1);
expect(onChange.mock.calls[0][0].from.getDate()).toEqual(1);
case 2:
return _context17.a(2);
}
}, _callee17);
})));
it('should call onChange({from: $clickedDay}) when value is a Range', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee18() {
var _render18, driver;
return _regenerator().w(function (_context18) {
while (1) switch (_context18.n) {
case 0:
_render18 = render(/*#__PURE__*/_react["default"].createElement(_.Calendar, {
value: {
from: new Date(2018, 10, 5),
to: new Date(2018, 10, 10)
},
onChange: onChange,
selectionMode: "range",
__self: _this,
__source: {
fileName: _jsxFileName,
lineNumber: 378,
columnNumber: 13
}
})), driver = _render18.driver;
_context18.n = 1;
return driver.clickOnNthDay(0);
case 1:
expect(onChange).toHaveBeenCalledTimes(1);
expect(onChange.mock.calls[0][0].from.getDate()).toEqual(1);
case 2:
return _context18.a(2);
}
}, _callee18);
})));
it('should call onChange({from: $clickedDay}) when value is a single Date', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee19() {
var _render19, driver;
return _regenerator().w(function (_context19) {
while (1) switch (_context19.n) {
case 0:
_render19 = render(/*#__PURE__*/_react["default"].createElement(_.Calendar, {
value: new Date(2018, 10, 5),
onChange: onChange,
selectionMode: "range",
__self: _this,
__source: {
fileName: _jsxFileName,
lineNumber: 395,
columnNumber: 13
}
})), driver = _render19.driver;
_context19.n = 1;
return driver.clickOnNthDay(0);
case 1:
expect(onChange).toHaveBeenCalledTimes(1);
expect(onChange.mock.calls[0][0].from.getDate()).toEqual(1);
case 2:
return _context19.a(2);
}
}, _callee19);
})));
it("should call onChange({from: $from, to: $clickedDay}) when value has only 'from'", /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee20() {
var _render20, driver;
return _regenerator().w(function (_context20) {
while (1) switch (_context20.n) {
case 0:
_render20 = render(/*#__PURE__*/_react["default"].createElement(_.Calendar, {
value: {
from: new Date(2018, 10, 1)
},
onChange: onChange,
selectionMode: "range",
__self: _this,
__source: {
fileName: _jsxFileName,
lineNumber: 409,
columnNumber: 13
}
})), driver = _render20.driver;
_context20.n = 1;
return driver.clickOnNthDay(2);
case 1:
expect(onChange).toHaveBeenCalledTimes(1);
expect(onChange.mock.calls[0][0].from.getDate()).toEqual(1);
expect(onChange.mock.calls[0][0].to.getDate()).toEqual(3);
case 2:
return _context20.a(2);
}
}, _callee20);
})));
it("should call onChange({from: $clickedDay, to: $to}) when a day is clicked, given only 'to'", /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee21() {
var _render21, driver;
return _regenerator().w(function (_context21) {
while (1) switch (_context21.n) {
case 0:
_render21 = render(/*#__PURE__*/_react["default"].createElement(_.Calendar, {
value: {
to: new Date(2018, 10, 3)
},
onChange: onChange,
selectionMode: "range",
__self: _this,
__source: {
fileName: _jsxFileName,
lineNumber: 424,
columnNumber: 13
}
})), driver = _render21.driver;
_context21.n = 1;
return driver.clickOnNthDay(0);
case 1:
expect(onChange).toHaveBeenCalledTimes(1);
expect(onChange.mock.calls[0][0].from.getDate()).toEqual(1);
expect(onChange.mock.calls[0][0].to.getDate()).toEqual(3);
case 2:
return _context21.a(2);
}
}, _callee21);
})));
it("should call onChange({from: $clickedDay, to: $from}) if the clicked day is earlier than the provided 'from'", /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee22() {
var _render22, driver;
return _regenerator().w(function (_context22) {
while (1) switch (_context22.n) {
case 0:
_render22 = render(/*#__PURE__*/_react["default"].createElement(_.Calendar, {
value: {
from: new Date(2018, 10, 10)
},
onChange: onChange,
selectionMode: "range",
__self: _this,
__source: {
fileName: _jsxFileName,
lineNumber: 438,
columnNumber: 13
}
})), driver = _render22.driver;
_context22.n = 1;
return driver.clickOnNthDay(0);
case 1:
expect(onChange).toHaveBeenCalledTimes(1);
expect(onChange.mock.calls[0][0].from.getDate()).toEqual(1);
expect(onChange.mock.calls[0][0].to.getDate()).toEqual(10);
case 2:
return _context22.a(2);
}
}, _callee22);
})));
it("should call onChange({from: $clickedDay, to: $from}) when a day is clicked, given only 'from'", /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee23() {
var _render23, driver;
return _regenerator().w(function (_context23) {
while (1) switch (_context23.n) {
case 0:
_render23 = render(/*#__PURE__*/_react["default"].createElement(_.Calendar, {
value: {
from: new Date(2018, 10, 10)
},
onChange: onChange,
selectionMode: "range",
__self: _this,
__source: {
fileName: _jsxFileName,
lineNumber: 453,
columnNumber: 13
}
})), driver = _render23.driver;
_context23.n = 1;
return driver.clickOnNthDay(2);
case 1:
expect(onChange).toHaveBeenCalledTimes(1);
expect(onChange.mock.calls[0][0].from.getDate()).toEqual(3);
expect(onChange.mock.calls[0][0].to.getDate()).toEqual(10);
case 2:
return _context23.a(2);
}
}, _callee23);
})));
it('should prevent event default', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee24() {
var dataHook, eventListenerMock, _render24, driver;
return _regenerator().w(function (_context24) {
while (1) switch (_context24.n) {
case 0:
dataHook = 'calendar-data-hook';
eventListenerMock = vi.fn();
_render24 = render(/*#__PURE__*/_react["default"].createElement("div", {
onClick: eventListenerMock,
__self: _this,
__source: {
fileName: _jsxFileName,
lineNumber: 470,
columnNumber: 13
}
}, /*#__PURE__*/_react["default"].createElement(_.Calendar, {
value: {
from: new Date(2018, 10, 10)
},
onChange: onChange,
selectionMode: "range",
dataHook: dataHook,
__self: _this,
__source: {
fileName: _jsxFileName,
lineNumber: 471,
columnNumber: 15
}
})), {
dataHook: dataHook
}), driver = _render24.driver;
_context24.n = 1;
return driver.clickOnNthDay(2);
case 1:
expect(eventListenerMock).toHaveBeenCalledTimes(1);
expect(eventListenerMock.mock.calls[0][0].defaultPrevented).toEqual(true);
case 2:
return _context24.a(2);
}
}, _callee24);
})));
it('should call `onClose` callback with event', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee25() {
var onCloseMock, _render25, driver;
return _regenerator().w(function (_context25) {
while (1) switch (_context25.n) {
case 0:
onCloseMock = vi.fn();
_render25 = render(/*#__PURE__*/_react["default"].createElement(_.Calendar, {
value: {
from: new Date(2018, 10, 10)
},
onChange: onChange,
selectionMode: "range",
onClose: onCloseMock,
shouldCloseOnSelect: true,
__self: _this,
__source: {
fileName: _jsxFileName,
lineNumber: 491,
columnNumber: 13
}
})), driver = _render25.driver;
_context25.n = 1;
return driver.clickOnNthDay(2);
case 1:
expect(onCloseMock).toHaveBeenCalledTimes(1);
expect(onCloseMock.mock.calls[0][0].type).toEqual('click');
case 2:
return _context25.a(2);
}
}, _callee25);
})));
});
});
describe('excludePastDates', function () {
var defaultProps = {
onChange: function onChange() {}
};
it('past dates should not be active', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee26() {
var _render26, driver, _t0;
return _regenerator().w(function (_context26) {
while (1) switch (_context26.n) {
case 0:
_render26 = render(/*#__PURE__*/_react["default"].createElement(_.Calendar, (0, _extends2["default"])({}, defaultProps, {
value: new Date(2020, 0, 17),
excludePastDates: true,
__self: _this,
__source: {
fileName: _jsxFileName,
lineNumber: 514,
columnNumber: 11
}
}))), driver = _render26.driver;
_t0 = expect;
_context26.n = 1;
return driver.isDayActive(new Date(2020, 0, 7));
case 1:
_t0(_context26.v).toBe(false);
case 2:
return _context26.a(2);
}
}, _callee26);
})));
it('other days should be active', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee27() {
var _render27, driver, _t1;
return _regenerator().w(function (_context27) {
while (1) switch (_context27.n) {
case 0:
_render27 = render(/*#__PURE__*/_react["default"].createElement(_.Calendar, (0, _extends2["default"])({}, defaultProps, {
value: new Date(),
excludePastDates: true,
__self: _this,
__source: {
fileName: _jsxFileName,
lineNumber: 525,
columnNumber: 11
}
}))), driver = _render27.driver;
_t1 = expect;
_context27.n = 1;
return driver.isDayActive(new Date());
case 1:
_t1(_context27.v).toBe(true);
case 2:
return _context27.a(2);
}
}, _callee27);
})));
it('when combined with filterDate prop disable more than one range of date', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee28() {
var today, yesterday, tomorrow, _render28, driver, _t10, _t11;
return _regenerator().w(function (_context28) {
while (1) switch (_context28.n) {
case 0:
today = new Date(2021, 2, 17);
yesterday = new Date(2021, 2, 16);
tomorrow = new Date(2021, 2, 18);
_render28 = render(/*#__PURE__*/_react["default"].createElement(_.Calendar, (0, _extends2["default"])({}, defaultProps, {
value: today,
filterDate: function filterDate(date) {
return date < new Date();
},
excludePastDates: true,
__self: _this,
__source: {
fileName: _jsxFileName,
lineNumber: 536,
columnNumber: 11
}
}))), driver = _render28.driver;
_t10 = expect;
_context28.n = 1;
return driver.isDayActive(yesterday);
case 1:
_t10(_context28.v).toBe(false);
_t11 = expect;
_context28.n = 2;
return driver.isDayActive(tomorrow);
case 2:
_t11(_context28.v).toBe(false);
case 3:
return _context28.a(2);
}
}, _callee28);
})));
});
describe('Auto Focus', function () {
var defaultProps = {
onChange: function onChange() {}
};
it('should autoFocus on selected Day when autoFocus prop is true', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee29() {
var _render29, driver, _t12;
return _regenerator().w(function (_context29) {
while (1) switch (_context29.n) {
case 0:
_render29 = render(/*#__PURE__*/_react["default"].createElement(_.Calendar, (0, _extends2["default"])({}, defaultProps, {
autoFocus: true,
value: new Date(2018, 10, 10),
__self: _this,
__source: {
fileName: _jsxFileName,
lineNumber: 555,
columnNumber: 11
}
}))), driver = _render29.driver;
_t12 = expect;
_context29.n = 1;
return driver.getFocusedDay();
case 1:
_t12(_context29.v).toBe('10');
case 2:
return _context29.a(2);
}
}, _callee29);
})));
it('should NOT autoFocus on selected Day when autoFocus prop is false', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee30() {
var _render30, driver, _t13;
return _regenerator().w(function (_context30) {
while (1) switch (_context30.n) {
case 0:
_render30 = render(/*#__PURE__*/_react["default"].createElement(_.Calendar, (0, _extends2["default"])({}, defaultProps, {
value: new Date(2018, 10, 10),
autoFocus: false,
__self: _this,
__source: {
fileName: _jsxFileName,
lineNumber: 566,
columnNumber: 11
}
}))), driver = _render30.driver;
_t13 = expect;
_context30.n = 1;
return driver.getFocusedDay();
case 1:
_t13(_context30.v).toBe(null);
case 2:
return _context30.a(2);
}
}, _callee30);
})));
it('should autoFocus on selected Day when rerendering with autoFocus=true', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee31() {
var _render31, driver, rerender, _t14, _t15;
return _regenerator().w(function (_context31) {
while (1) switch (_context31.n) {
case 0:
_render31 = render(/*#__PURE__*/_react["default"].createElement(_.Calendar, (0, _extends2["default"])({}, defaultProps, {
value: new Date(2018, 10, 10),
autoFocus: false,
__self: _this,
__source: {
fileName: _jsxFileName,
lineNumber: 577,
columnNumber: 11
}
}))), driver = _render31.driver, rerender = _render31.rerender;
_t14 = expect;
_context31.n = 1;
return driver.getFocusedDay();
case 1:
_t14(_context31.v).toBe(null);
rerender(/*#__PURE__*/_react["default"].createElement(_.Calendar, (0, _extends2["default"])({}, defaultProps, {
value: new Date(2018, 10, 10),
autoFocus: true,
__self: _this,
__source: {
fileName: _jsxFileName,
lineNumber: 586,
columnNumber: 11
}
})));
_t15 = expect;
_context31.n = 2;
return driver.getFocusedDay();
case 2:
_t15(_context31.v).toBe('10');
case 3:
return _context31.a(2);
}
}, _callee31);
})));
it('should NOT autoFocus on selected Day when rerendering without changing the autoFocus', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee32() {
var _render32, driver, rerender, _t16, _t17;
return _regenerator().w(function (_context32) {
while (1) switch (_context32.n) {
case 0:
_render32 = render(/*#__PURE__*/_react["default"].createElement(_.Calendar, (0, _extends2["default"])({}, defaultProps, {
value: new Date(2018, 10, 10),
autoFocus: true,
__self: _this,
__source: {
fileName: _jsxFileName,
lineNumber: 598,
columnNumber: 11
}
}))), driver = _render32.driver, rerender = _render32.rerender;
_t16 = expect;
_context32.n = 1;
return driver.getFocusedDay();
case 1:
_t16(_context32.v).toBe('10');
rerender(/*#__PURE__*/_react["default"].createElement(_.Calendar, (0, _extends2["default"])({}, defaultProps, {
value: new Date(2018, 10, 9),
autoFocus: true,
__self: _this,
__source: {
fileName: _jsxFileName,
lineNumber: 607,
columnNumber: 11
}
})));
_t17 = expect;
_context32.n = 2;
return driver.getFocusedDay();
case 2:
_t17(_context32.v).toBe('10');
case 3:
return _context32.a(2);
}
}, _callee32);
})));
});
describe("'value' update", function () {
describe("'month' state", function () {
function testCase(_x) {
return _testCase.apply(this, arguments);
}
function _testCase() {
_testCase = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee47(_ref34) {
var initialValue, nextValue, expectedInitialMonth, expectedMonth, _ref34$numOfMonths, numOfMonths, props, _render33, driver, rerender, _t18, _t19;
return _regenerator().w(function (_context47) {
while (1) switch (_context47.n) {
case 0:
initialValue = _ref34.initialValue, nextValue = _ref34.nextValue, expectedInitialMonth = _ref34.expectedInitialMonth, expectedMonth = _ref34.expectedMonth, _ref34$numOfMonths = _ref34.numOfMonths, numOfMonths = _ref34$numOfMonths === void 0 ? 1 : _ref34$numOfMonths;
props = {
onChange: function onChange() {},
numOfMonths: numOfMonths
};
_render33 = render(/*#__PURE__*/_react["default"].createElement(_.Calendar, (0, _extends2["default"])({}, props, {
value: initialValue,
__self: this,
__source: {
fileName: _jsxFileName,
lineNumber: 632,
columnNumber: 13
}
}))), driver = _render33.driver, rerender = _render33.rerender;
_t18 = expect;
_context47.n = 1;
return driver.getMonthCaption();
case 1:
_t18(_context47.v).toEqual(monthNames[expectedInitialMonth]);
rerender(/*#__PURE__*/_react["default"].createElement(_.Calendar, (0, _extends2["default"])({}, props, {
value: nextValue,
__self: this,
__source: {
fileName: _jsxFileName,
lineNumber: 637,
columnNumber: 20
}
})));
_t19 = expect;
_context47.n = 2;
return driver.getMonthCaption();
case 2:
_t19(_context47.v).toEqual(monthNames[expectedMonth]);
case 3:
return _context47.a(2);
}
}, _callee47, this);
}));
return _testCase.apply(this, arguments);
}
describe('one month', function () {
it('should not change when nextValue is empty', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee33() {
return _regenerator().w(function (_context33) {
while (1) switch (_context33.n) {
case 0:
_context33.n = 1;
return testCase({
initialValue: new Date(2018, NOVEMBER, 1),
expectedInitialMonth: NOVEMBER,
nextValue: {},
expectedMonth: NOVEMBER
});
case 1:
return _context33.a(2);
}
}, _callee33);
})));
describe('single day', function () {
it('should not change the displayed month, provided that current month contains the new Date', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee34() {
return _regenerator().w(function (_context34) {
while (1) switch (_context34.n) {
case 0:
_context34.n = 1;
return testCase({
initialValue: new Date(2018, OCTOBER, 1),
expectedInitialMonth: OCTOBER,
nextValue: new Date(2018, OCTOBER, 2),
expectedMonth: OCTOBER
});
case 1:
return _context34.a(2);
}
}, _callee34);
})));
it('should change the displayed month, provided that the current month is earlier than the new Date', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee35() {
return _regenerator().w(function (_context35) {
while (1) switch (_context35.n) {
case 0:
_context35.n = 1;
return testCase({
initialValue: new Date(2018, OCTOBER, 1),
expectedInitialMonth: OCTOBER,
nextValue: new Date(2018, NOVEMBER, 1),
expectedMonth: NOVEMBER
});
case 1:
return _context35.a(2);
}
}, _callee35);
})));
it('should change the displayed month, provided that the current month is later than the new Date', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee36() {
return _regenerator().w(function (_context36) {
while (1) switch (_context36.n) {
case 0:
_context36.n = 1;
return testCase({
initialValue: new Date(2018, OCTOBER, 1),
expectedInitialMonth: OCTOBER,
nextValue: new Date(2018, SEPTEMBER, 1),
expectedMonth: SEPTEMBER
});
case 1:
return _context36.a(2);
}
}, _callee36);
})));
});
describe('range', function () {
it('should not change the displayed month, provided that the current month is contained in the new Range', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee37() {
return _regenerator().w(function (_context37) {
while (1) switch (_context37.n) {
case 0:
_context37.n = 1;
return testCase({
initialValue: new Date(2018, OCTOBER, 1),
expectedInitialMonth: OCTOBER,
nextValue: {
from: new Date(2018, SEPTEMBER, 1),
to: new Date(2018, NOVEMBER, 1)
},
expectedMonth: SEPTEMBER
});
case 1:
return _context37.a(2);
}
}, _callee37);
})));
it('should move the displayed month forward, provided that the current month is earlier than the new Range', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee38() {
return _regenerator().w(function (_context38) {
while (1) switch (_context38.n) {
case 0:
_context38.n = 1;
return testCase({
initialValue: new Date(2018, SEPTEMBER, 1),
expectedInitialMonth: SEPTEMBER,
nextValue: {
from: new Date(2018, OCTOBER, 1),
to: new Date(2018, NOVEMBER, 1)
},
expectedMonth: OCTOBER
});
case 1:
return _context38.a(2);
}
}, _callee38);
})));
it('should move the displayed month forward, provided that the current month is earlier than the new unbounded Range', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee39() {
return _regenerator().w(function (_context39) {
while (1) switch (_context39.n) {
case 0:
_context39.n = 1;
return testCase({
initialValue: new Date(2018, SEPTEMBER, 1),
expectedInitialMonth: SEPTEMBER,
nextValue: {
from: new Date(2018, OCTOBER, 1)
},
expectedMonth: OCTOBER
});
case 1:
return _context39.a(2);
}
}, _callee39);
})));
it('should move the displayed month back, provided that the current month is later than the new Range', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee40() {
return _regenerator().w(function (_context40) {
while (1) switch (_context40.n) {
case 0:
_context40.n = 1;
return testCase({
initialValue: new Date(2018, NOVEMBER, 1),
expectedInitialMonth: NOVEMBER,
nextValue: {
from: new Date(2018, SEPTEMBER, 1),
to: new Date(2018, OCTOBER, 1)
},
expectedMonth: OCTOBER
});
case 1:
return _context40.a(2);
}
}, _callee40);
})));
it('should move the displayed month back, provided that the current month is later than the new unbounded Range', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee41() {
return _regenerator().w(function (_context41) {
while (1) switch (_context41.n) {
case 0:
_context41.n = 1;
return testCase({
initialValue: new Date(2018, NOVEMBER, 1),
expectedInitialMonth: NOVEMBER,
nextValue: {
to: new Date(2018, OCTOBER, 1)
},
expectedMonth: OCTOBER
});
case 1:
return _context41.a(2);
}
}, _callee41);
})));
});
});
describe('two month', function () {
describe('single day', function () {
it('should not change the displayed month, when new day is 2nd month', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee42() {
return _regenerator().w(function (_context42) {
while (1) switch (_context42.n) {
case 0:
_context42.n = 1;
return testCase({
initialValue: new Date(2018, OCTOBER, 1),
expectedInitialMonth: OCTOBER,
nextValue: new Date(2018, NOVEMBER, 2),
expectedMonth: OCTOBER,
numOfMonths: 2
});
case 1:
return _context42.a(2);
}
}, _callee42);
})));
});
describe('range', function () {
it("should not change the displayed month, when new 'from' is in 2nd month", /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee43() {
return _regenerator().w(function (_context43) {
while (1) switch (_context43.n) {
case 0:
_context43.n = 1;
return testCase({
initialValue: new Date(2018, OCTOBER, 1),
expectedInitialMonth: OCTOBER,
nextValue: {
from: new Date(2018, NOVEMBER, 2)
},
expectedMonth: OCTOBER,
numOfMonths: 2
});
case 1:
return _context43.a(2);
}
}, _callee43);
})));
it("should change the displayed month to new range 'from', when new 'to' is before calendar view and the new range fits in view", /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee44() {
return _regenerator().w(function (_context44) {
while (1) switch (_context44.n) {
case 0:
_context44.n = 1;
return testCase({
initialValue: new Date(2018, NOVEMBER, 1),
expectedInitialMonth: NOVEMBER,
nextValue: {
from: new Date(2018, SEPTEMBER, 1),
to: new Date(2018, OCTOBER, 10)
},
expectedMonth: SEPTEMBER,
numOfMonths: 2
});
case 1:
return _context44.a(2);
}
}, _callee44);
})));
it("should change the displayed month so that new range 'to' is in the 2nd month, when new 'to' is before calendar view and the new range does not fit in view", /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee45() {
return _regenerator().w(function (_context45) {
while (1) switch (_context45.n) {
case 0:
_context45.n = 1;
return testCase({
initialValue: new Date(2018, NOVEMBER, 1),
expectedInitialMonth: NOVEMBER,
nextValue: {
from: new Date(2018, AUGUST, 1),
to: new Date(2018, OCTOBER, 20)
},
expectedMonth: SEPTEMBER,
numOfMonths: 2
});
case 1:
return _context45.a(2);
}
}, _callee45);
})));
it("should change the displayed month to the 'from', when new range contains the view", /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee46() {
return _regenerator().w(function (_context46) {
while (1) switch (_context46.n) {
case 0:
_context46.n = 1;
return testCase({
initialValue: new Date(2018, NOVEMBER, 1),
expectedInitialMonth: NOVEMBER,
nextValue: {
from: new Date(2018, AUGUST, 1),
to: new Date(2018, OCTOBER, 20)
},
expectedMonth: SEPTEMBER,
numOfMonths: 2
});
case 1:
return _context46.a(2);
}
}, _callee46);
})));
});
});
});
});
describe('firstDayOfWeek', function () {
it('should show correct first day of the week', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee48() {
var _render34, driver, _t20;
return _regenerator().w(function (_context48) {
while (1) switch (_context48.n) {
case 0:
_render34 = render(/*#__PURE__*/_react["default"].createElement(_.Calendar, {
value: {},
onChange: function onChange() {},
firstDayOfWeek: 0,
__self: _this,
__source: {
fileName: _jsxFileName,
lineNumber: 813,
columnNumber: 11
}
})), driver = _render34.driver;
_t20 = expect;
_context48.n = 1;
return driver.getNthWeekDayName(0);
case 1:
_t20(_context48.v).toEqual('Sun');
case 2:
return _context48.a(2);
}
}, _callee48);
})));
it('should set sunday as first day of the week for vi locale', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee49() {
var _render35, driver, _t21;
return _regenerator().w(function (_context49) {
while (1) switch (_context49.n) {
case 0:
_render35 = render(/*#__PURE__*/_react["default"].createElement(_.Calendar, {
value: {},
onChange: function onChange() {},
locale: "vi",
__self: _this,
__source: {
fileName: _jsxFileName,
lineNumber: 821,
columnNumber: 11
}
})), driver = _render35.driver;
_t21 = expect;
_context49.n = 1;
return driver.getNthWeekDayName(0);
case 1:
_t21(_context49.v).toEqual('CN');
case 2:
return _context49.a(2);
}
}, _callee49);
})));
});
describe('formatWeekdayShort', function () {
it('should set iiiiii as short weekday format by default', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee50() {
var _render36, driver, _t22;
return _regenerator().w(function (_context50) {
while (1) switch (_context50.n) {
case 0:
_render36 = render(/*#__PURE__*/_react["default"].createElement(_.Calendar, {
value: {},
onChange: function onChange() {},
locale: "lt",
__self: _this,
__source: {
fileName: _jsxFileName,
lineNumber: 831,
columnNumber: 11
}
})), driver = _render36.driver;
_t22 = expect;
_context50.n = 1;
return driver.getNthWeekDayName(0);
case 1:
_t22(_context50.v).toEqual('pr');
case 2:
return _context50.a(2);
}
}, _callee50);
})));
it('should set iiiii as short weekday format for vi locale', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee51() {
var _render37, driver, _t23;
return _regenerator().w(function (_context51) {
while (1) switch (_context51.n) {
case 0:
_render37 = render(/*#__PURE__*/_react["default"].createElement(_.Calendar, {
value: {},
onChange: function onChange() {},
locale: "vi",
__self: _this,
__source: {
fileName: _jsxFileName,
lineNumber: 839,
columnNumber: 11
}
})), driver = _render37.driver;
_t23 = expect;
_context51.n = 1;
return driver.getNthWeekDayName(1);
case 1:
_t23(_context51.v).toEqual('T2');
case 2:
return _context51.a(2);
}
}, _callee51);
})));
});
describe('Month & Year dropdowns', function () {
it('Should select a month & year', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee52() {
var _render38, driver, monthDropdownDriver, yearDropdownDriver, _t24, _t25, _t26, _t27;
return _regenerator().w(function (_context52) {
while (1) switch (_context52.n) {
case 0:
_render38 = render(/*#__PURE__*/_react["default"].createElement(_.Calendar, {
value: new Date('01.01.01'),
onChange: function onChange() {},
showYearDropdown: true,
showMonthDropdown: true,
__self: _this,
__source: {
fileName: _jsxFileName,
lineNumber: 849,
columnNumber: 11
}
})), driver = _render38.driver;
_context52.n = 1;
return driver.getMonthDropdownDriver();
case 1:
monthDropdownDriver = _context52.v;
_t24 = expect;
_context52.n = 2;
return driver.getMonthDropdownLabel();
case 2:
_t24(_context52.v).toBe('January');
_context52.n = 3;
return monthDropdownDriver.clickAtOptionWithValue('June');
case 3:
_t25 = expect;
_context52.n = 4;
return driver.getMonthDropdownLabel();
case 4:
_t25(_context52.v).toBe('June');
_context52.n = 5;
return driver.getYearDropdownDriver();
case 5:
yearDropdownDriver = _context52.v;
_t26 = expect;
_context52.n = 6;
return driver.getSelectedYear();
case 6:
_t26(_context52.v).toBe('2001');
_context52.n = 7;
return yearDropdownDriver.clickAtOptionWithValue('2020');
case 7:
_t27 = expect;
_context52.n = 8;
return driver.getSelectedYear();
case 8:
_t27(_context52.v).toBe('2020');
case 9:
return _context52.a(2);
}
}, _callee52);
})), 10000);
});
describe('locale', function () {
it('should set the correct locale', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee53() {
var _render39, driver, _t28;
return _regenerator().w(function (_context53) {
while (1) switch (_context53.n) {
case 0:
_render39 = render(/*#__PURE__*/_react["default"].createElement(_.Calendar, {
locale: "es",
value: {},
onChange: function onChange() {},
firstDayOfWeek: 0,
__self: _this,
__source: {
fileName: _jsxFileName,
lineNumber: 874,
columnNumber: 11
}
})), driver = _render39.driver;
_t28 = expect;
_context53.n = 1;
return driver.getNthWeekDayName(0);
case 1:
_t28(_context53.v).toEqual('dom');
case 2:
return _context53.a(2);
}
}, _callee53);
})));
it('should set the correct locale from the WixStyleReactEnvironmentProvider', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee54() {
var _render40, driver, _t29;
return _regenerator().w(function (_context54) {
while (1) switch (_context54.n) {
case 0:
_render40 = render(/*#__PURE__*/_react["default"].createElement(_WixStyleReactEnvironmentProvider.WixStyleReactEnvironmentProvider, {
locale: "es",
__self: _this,
__source: {
fileName: _jsxFileName,
lineNumber: 887,
columnNumber: 11
}
}, /*#__PURE__*/_react["default"].createElement(_.Calendar, {
value: {},
onChange: function onChange() {},
firstDayOfWeek: 0,
__self: _this,
__source: {
fileName: _jsxFileName,
lineNumber: 888,
columnNumber: 13
}
}))), driver = _render40.driver;
_t29 = expect;
_context54.n = 1;
return driver.getNthWeekDayName(0);
case 1:
_t29(_context54.v).toEqual('dom');
case 2:
return _context54.a(2);
}
}, _callee54);
})));
it('should take the locale prop as a stronger prop even when in the WixStyleReactEnvironmentProvider', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee55() {
var _render41, driver, _t30;
return _regenerator().w(function (_context55) {
while (1) switch (_context55.n) {
case 0:
_render41 = render(/*#__PURE__*/_react["default"].createElement(_WixStyleReactEnvironmentProvider.WixStyleReactEnvironmentProvider, {
locale: "en",
__self: _this,
__source: {
fileName: _jsxFileName,
lineNumber: 897,
columnNumber: 11
}
}, /*#__PURE__*/_react["default"].createElement(_.Calendar, {
locale: "es",
value: {},
onChange: function onChange() {},
firstDayOfWeek: 0,
__self: _this,
__source: {
fileName: _jsxFileName,
lineNumber: 898,
columnNumber: 13
}
}))), driver = _render41.driver;
_t30 = expect;
_context55.n = 1;
return driver.getNthWeekDayName(0);
case 1:
_t30(_context55.v).toEqual('dom');
case 2:
return _context55.a(2);
}
}, _callee55);
})));
});
describe('size', function () {
it('should have default medium size', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee56() {
var _render42, driver, _t31;
return _regenerator().w(function (_context56) {
while (1) switch (_context56.n) {
case 0:
_render42 = render(/*#__PURE__*/_react["default"].createElement(_.Calendar, {
value: {},
onChange: function onChange() {},
__self: _this,
__source: {
fileName: _jsxFileName,
lineNumber: 913,
columnNumber: 35
}
})), driver = _render42.driver;
_t31 = expect;
_context56.n = 1;
return driver.getSize();
case 1:
_t31(_context56.v).toEqual('medium');
case 2:
return _context56.a(2);
}
}, _callee56);
})));
it('should have size small [when] given', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee57() {
var _render43, driver, _t32;
return _regenerator().w(function (_context57) {
while (1) switch (_context57.n) {
case 0:
_render43 = render(/*#__PURE__*/_react["default"].createElement(_.Calendar, {
value: {},
onChange: function onChange() {},
size: "small",
__self: _this,
__source: {
fileName: _jsxFileName,
lineNumber: 919,
columnNumber: 11
}
})), driver = _render43.driver;
_t32 = expect;
_context57.n = 1;
return driver.getSize();
case 1:
_t32(_context57.v).toEqual('small');
case 2:
return _context57.a(2);
}
}, _callee57);
})));
});
describe('onKeyDown', function () {
it('should call onKeyDown and skip close', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee58() {
var onKeyDown, onClose, _render44, driver;
return _regenerator().w(function (_context58) {
while (1) switch (_context58.n) {
case 0:
onKeyDown = vi.fn();
onClose = vi.fn();
_render44 = render(/*#__PURE__*/_react["default"].createElement(_.Calendar, {
value: new Date(2022, 2, 2),
onChange: function onChange() {},
onClose: onClose,
onKeyDown: onKeyDown,
__self: _this,
__source: {
fileName: _jsxFileName,
lineNumber: 930,
columnNumber: 11
}
})), driver = _render44.driver;
_context58.n = 1;
return driver.triggerKeyDown({
key: 'Escape',
keyCode: 27
});
case 1:
expect(onKeyDown).toHaveBeenCalledTimes(1);
expect(onKeyDown.mock.calls[0][0].type).toEqual('keydown');
expect(onClose).not.toHaveBeenCalled();
case 2:
return _context58.a(2);
}
}, _callee58);
})));
it('should call onClose when escape is pressed', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee59() {
var onClose, _render45, driver;
return _regenerator().w(function (_context59) {
while (1) switch (_context59.n) {
case 0:
onClose = vi.fn();
_render45 = render(/*#__PURE__*/_react["default"].createElement(_.Calendar, {
value: new Date(2022, 2, 2),
onChange: function onChange() {},
onClose: onClose,
__self: _this,
__source: {
fileName: _jsxFileName,
lineNumber: 949,
columnNumber: 11
}
})), driver = _render45.driver;
_context59.n = 1;
return driver.triggerKeyDown({
key: 'Escape',
keyCode: 27
});
case 1:
expect(onClose).toHaveBeenCalledTimes(1);
expect(onClose.mock.calls[0][0].type).toEqual('keydown');
case 2:
return _context59.a(2);
}
}, _callee59);
})));
});
}
});