UNPKG

wix-style-react

Version:
315 lines (263 loc) • 11.9 kB
'use strict'; var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _react = require('react'); var _react2 = _interopRequireDefault(_react); var _ = require('.'); var _2 = _interopRequireDefault(_); var _unit = require('../../test/utils/unit'); var _CalendarPanelFooterDriver = require('./CalendarPanelFooter.driver.private'); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step("next", value); }, function (err) { step("throw", err); }); } } return step("next"); }); }; } describe('CalendarPanelFooter', function () { var render = (0, _unit.createRendererWithUniDriver)(_CalendarPanelFooterDriver.calendarPanelFooterPrivateDriverFactory); afterEach(function () { (0, _unit.cleanup)(); }); var createDefaultProps = function createDefaultProps() { return { primaryActionLabel: 'Update', secondaryActionLabel: 'Cancel', primaryActionDisabled: false, primaryActionOnClick: function primaryActionOnClick() {}, secondaryActionOnClick: function secondaryActionOnClick() {}, dateToString: function dateToString(date) { return date.toLocaleDateString('en-US', _.defaultDateToStringOptions); }, selectedDays: new Date(2018, 0, 15) }; }; describe('selected days text', function () { it('should show single selected day text', _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee() { var _render, driver; return regeneratorRuntime.wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: _render = render(_react2.default.createElement(_2.default, createDefaultProps())), driver = _render.driver; _context.t0 = expect; _context.next = 4; return driver.getSelectedDaysText(); case 4: _context.t1 = _context.sent; (0, _context.t0)(_context.t1).toBe('Jan 15, 2018'); case 6: case 'end': return _context.stop(); } } }, _callee, undefined); }))); it('should show range text', _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee2() { var selectedDays, _render2, driver; return regeneratorRuntime.wrap(function _callee2$(_context2) { while (1) { switch (_context2.prev = _context2.next) { case 0: selectedDays = { from: new Date(2018, 0, 1), to: new Date(2018, 0, 15) }; _render2 = render(_react2.default.createElement(_2.default, _extends({}, createDefaultProps(), { selectedDays: selectedDays }))), driver = _render2.driver; _context2.t0 = expect; _context2.next = 5; return driver.getSelectedDaysText(); case 5: _context2.t1 = _context2.sent; (0, _context2.t0)(_context2.t1).toBe('Jan 1, 2018 - Jan 15, 2018'); case 7: case 'end': return _context2.stop(); } } }, _callee2, undefined); }))); it('should show infinite range text', _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee3() { var selectedDays, _render3, driver; return regeneratorRuntime.wrap(function _callee3$(_context3) { while (1) { switch (_context3.prev = _context3.next) { case 0: selectedDays = { from: new Date(2018, 0, 1) }; _render3 = render(_react2.default.createElement(_2.default, _extends({}, createDefaultProps(), { selectedDays: selectedDays }))), driver = _render3.driver; _context3.t0 = expect; _context3.next = 5; return driver.getSelectedDaysText(); case 5: _context3.t1 = _context3.sent; (0, _context3.t0)(_context3.t1).toBe('Jan 1, 2018 -'); case 7: case 'end': return _context3.stop(); } } }, _callee3, undefined); }))); it('should show empty selected day text', _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee4() { var _render4, driver; return regeneratorRuntime.wrap(function _callee4$(_context4) { while (1) { switch (_context4.prev = _context4.next) { case 0: _render4 = render(_react2.default.createElement(_2.default, _extends({}, createDefaultProps(), { selectedDays: undefined }))), driver = _render4.driver; _context4.t0 = expect; _context4.next = 4; return driver.getSelectedDaysText(); case 4: _context4.t1 = _context4.sent; (0, _context4.t0)(_context4.t1).toBe(''); case 6: case 'end': return _context4.stop(); } } }, _callee4, undefined); }))); }); describe('Action Buttons', function () { describe('Text', function () { it('should show primary action button text', _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee5() { var _render5, driver; return regeneratorRuntime.wrap(function _callee5$(_context5) { while (1) { switch (_context5.prev = _context5.next) { case 0: _render5 = render(_react2.default.createElement(_2.default, _extends({}, createDefaultProps(), { primaryActionLabel: 'Custom Update' }))), driver = _render5.driver; _context5.t0 = expect; _context5.next = 4; return driver.getPrimaryActionButtonLabel(); case 4: _context5.t1 = _context5.sent; (0, _context5.t0)(_context5.t1).toBe('Custom Update'); case 6: case 'end': return _context5.stop(); } } }, _callee5, undefined); }))); it('should show secondary action button text', _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee6() { var _render6, driver; return regeneratorRuntime.wrap(function _callee6$(_context6) { while (1) { switch (_context6.prev = _context6.next) { case 0: _render6 = render(_react2.default.createElement(_2.default, _extends({}, createDefaultProps(), { secondaryActionLabel: 'Custom Cancel' }))), driver = _render6.driver; _context6.t0 = expect; _context6.next = 4; return driver.getSecondaryActionButtonLabel(); case 4: _context6.t1 = _context6.sent; (0, _context6.t0)(_context6.t1).toBe('Custom Cancel'); case 6: case 'end': return _context6.stop(); } } }, _callee6, undefined); }))); }); describe('Primary Button Disabled', function () { it('should show primary button as disabled when primaryActionDisabled=true', _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee7() { var _render7, driver; return regeneratorRuntime.wrap(function _callee7$(_context7) { while (1) { switch (_context7.prev = _context7.next) { case 0: _render7 = render(_react2.default.createElement(_2.default, _extends({}, createDefaultProps(), { primaryActionDisabled: true }))), driver = _render7.driver; _context7.t0 = expect; _context7.next = 4; return driver.isPrimaryButtonDisabled(); case 4: _context7.t1 = _context7.sent; (0, _context7.t0)(_context7.t1).toBe(true); case 6: case 'end': return _context7.stop(); } } }, _callee7, undefined); }))); it('should show primary button as enabled when primaryActionDisabled=false', _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee8() { var _render8, driver; return regeneratorRuntime.wrap(function _callee8$(_context8) { while (1) { switch (_context8.prev = _context8.next) { case 0: _render8 = render(_react2.default.createElement(_2.default, _extends({}, createDefaultProps(), { primaryActionDisabled: false }))), driver = _render8.driver; _context8.t0 = expect; _context8.next = 4; return driver.isPrimaryButtonDisabled(); case 4: _context8.t1 = _context8.sent; (0, _context8.t0)(_context8.t1).toBe(false); case 6: case 'end': return _context8.stop(); } } }, _callee8, undefined); }))); }); describe('On Click Callbacks', function () { it('should call primaryActionOnClick when clicking the primary button', _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee9() { var primaryActionOnClick, _render9, driver; return regeneratorRuntime.wrap(function _callee9$(_context9) { while (1) { switch (_context9.prev = _context9.next) { case 0: primaryActionOnClick = jest.fn(); _render9 = render(_react2.default.createElement(_2.default, _extends({}, createDefaultProps(), { primaryActionDisabled: false, primaryActionOnClick: primaryActionOnClick }))), driver = _render9.driver; _context9.next = 4; return driver.clickOnPrimaryButton(); case 4: expect(primaryActionOnClick).toHaveBeenCalledTimes(1); case 5: case 'end': return _context9.stop(); } } }, _callee9, undefined); }))); it('should call secondaryActionOnClick when clicking the secondary button', _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee10() { var secondaryActionOnClick, _render10, driver; return regeneratorRuntime.wrap(function _callee10$(_context10) { while (1) { switch (_context10.prev = _context10.next) { case 0: secondaryActionOnClick = jest.fn(); _render10 = render(_react2.default.createElement(_2.default, _extends({}, createDefaultProps(), { secondaryActionOnClick: secondaryActionOnClick }))), driver = _render10.driver; _context10.next = 4; return driver.clickOnSecondaryButton(); case 4: expect(secondaryActionOnClick).toBeCalled(); case 5: case 'end': return _context10.stop(); } } }, _callee10, undefined); }))); }); }); });