wix-style-react
Version:
wix-style-react
1,015 lines (831 loc) • 34.7 kB
JavaScript
'use strict';
var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
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 _enzyme = require('enzyme');
var _uniDriverFactory = require('wix-ui-test-utils/uni-driver-factory');
var _enzyme2 = require('wix-ui-test-utils/enzyme');
var _DropdownBase = require('./DropdownBase');
var _DropdownBase2 = _interopRequireDefault(_DropdownBase);
var _DropdownBaseDriver = require('./DropdownBase.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('DropdownBase', function () {
var createDriver = (0, _uniDriverFactory.createUniDriverFactory)(_DropdownBaseDriver.dropdownBasePrivateDriverFactory);
var dropdownBaseEnzymeDriver = (0, _enzyme2.enzymeUniTestkitFactoryCreator)(_DropdownBaseDriver.dropdownBasePrivateDriverFactory);
var defaultProps = {
options: [{ id: 0, value: 'First option' }, { id: 1, value: 'Second option' }, { id: 2, value: 'Third option' }, { id: 3, value: 'Fourth option' }]
};
var createUncontrolledDriver = function createUncontrolledDriver(renderProp, initialProps) {
var args = void 0;
var driver = createDriver(_react2.default.createElement(
_DropdownBase2.default,
_extends({}, defaultProps, initialProps),
function (_args) {
args = _args;
return renderProp ? renderProp(_args) : _react2.default.createElement(
'div',
null,
'Hello again'
);
}
));
return {
args: args,
driver: driver
};
};
var createControlledDriver = function createControlledDriver(renderProp, initialProps) {
var args = void 0;
var dataHook = 'dropdown-base-0';
var wrapper = (0, _enzyme.mount)(_react2.default.createElement(
_DropdownBase2.default,
_extends({}, defaultProps, {
dataHook: dataHook,
open: false
}, initialProps),
function (_args) {
args = _args;
return renderProp ? renderProp(_args) : _react2.default.createElement(
'div',
null,
'Hello again'
);
}
));
var driver = dropdownBaseEnzymeDriver({
wrapper: wrapper,
dataHook: dataHook
});
return {
args: args,
driver: driver,
wrapper: wrapper
};
};
it('should render', _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee() {
var driver;
return regeneratorRuntime.wrap(function _callee$(_context) {
while (1) {
switch (_context.prev = _context.next) {
case 0:
driver = createDriver(_react2.default.createElement(_DropdownBase2.default, defaultProps));
_context.t0 = expect;
_context.next = 4;
return driver.exists();
case 4:
_context.t1 = _context.sent;
(0, _context.t0)(_context.t1).toBeTruthy();
case 6:
case 'end':
return _context.stop();
}
}
}, _callee, undefined);
})));
it('should accept a node as a children', _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee2() {
var driver, targetElement;
return regeneratorRuntime.wrap(function _callee2$(_context2) {
while (1) {
switch (_context2.prev = _context2.next) {
case 0:
driver = createDriver(_react2.default.createElement(
_DropdownBase2.default,
defaultProps,
_react2.default.createElement(
'div',
null,
'Hello'
)
));
_context2.next = 3;
return driver.getTargetElement();
case 3:
targetElement = _context2.sent;
expect(targetElement.innerHTML).toContain('Hello');
case 5:
case 'end':
return _context2.stop();
}
}
}, _callee2, undefined);
})));
it('should accept a function as a children and pass it the required arguments', _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee3() {
var driver, targetElement;
return regeneratorRuntime.wrap(function _callee3$(_context3) {
while (1) {
switch (_context3.prev = _context3.next) {
case 0:
driver = createDriver(_react2.default.createElement(
_DropdownBase2.default,
defaultProps,
function (_ref4) {
var open = _ref4.open,
close = _ref4.close,
toggle = _ref4.toggle,
delegateKeyDown = _ref4.delegateKeyDown,
selectedOption = _ref4.selectedOption;
expect(typeof open === 'undefined' ? 'undefined' : _typeof(open)).toBe('function');
expect(typeof close === 'undefined' ? 'undefined' : _typeof(close)).toBe('function');
expect(typeof toggle === 'undefined' ? 'undefined' : _typeof(toggle)).toBe('function');
expect(typeof delegateKeyDown === 'undefined' ? 'undefined' : _typeof(delegateKeyDown)).toBe('function');
expect(selectedOption).toEqual(undefined);
return _react2.default.createElement(
'div',
null,
'Hello again'
);
}
));
_context3.next = 3;
return driver.getTargetElement();
case 3:
targetElement = _context3.sent;
expect(targetElement.innerHTML).toContain('Hello again');
case 5:
case 'end':
return _context3.stop();
}
}
}, _callee3, undefined);
})));
it('should call onSelect when an option was selected', _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee4() {
var onSelectFn, driver;
return regeneratorRuntime.wrap(function _callee4$(_context4) {
while (1) {
switch (_context4.prev = _context4.next) {
case 0:
onSelectFn = jest.fn();
driver = createDriver(_react2.default.createElement(
_DropdownBase2.default,
_extends({}, defaultProps, { open: true, onSelect: onSelectFn }),
_react2.default.createElement(
'div',
null,
'Hello'
)
));
_context4.next = 4;
return driver.selectOption(0);
case 4:
expect(onSelectFn).toHaveBeenCalledWith({ id: 0, value: 'First option' });
case 5:
case 'end':
return _context4.stop();
}
}
}, _callee4, undefined);
})));
it('should call onClickOutside', _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee5() {
var onClickOutsideFn, driver;
return regeneratorRuntime.wrap(function _callee5$(_context5) {
while (1) {
switch (_context5.prev = _context5.next) {
case 0:
onClickOutsideFn = jest.fn();
driver = createDriver(_react2.default.createElement(
_DropdownBase2.default,
_extends({}, defaultProps, { onClickOutside: onClickOutsideFn }),
_react2.default.createElement(
'div',
null,
'Hello'
)
));
_context5.next = 4;
return driver.clickOutside();
case 4:
expect(onClickOutsideFn).toHaveBeenCalledTimes(1);
case 5:
case 'end':
return _context5.stop();
}
}
}, _callee5, undefined);
})));
it('should call onMouseEnter', _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee6() {
var onMouseEnterFn, driver;
return regeneratorRuntime.wrap(function _callee6$(_context6) {
while (1) {
switch (_context6.prev = _context6.next) {
case 0:
onMouseEnterFn = jest.fn();
driver = createDriver(_react2.default.createElement(
_DropdownBase2.default,
_extends({}, defaultProps, { onMouseEnter: onMouseEnterFn }),
_react2.default.createElement(
'div',
null,
'Hello'
)
));
_context6.next = 4;
return driver.mouseEnter();
case 4:
expect(onMouseEnterFn).toHaveBeenCalledTimes(1);
case 5:
case 'end':
return _context6.stop();
}
}
}, _callee6, undefined);
})));
it('should call onMouseLeave', _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee7() {
var onMouseLeaveFn, driver;
return regeneratorRuntime.wrap(function _callee7$(_context7) {
while (1) {
switch (_context7.prev = _context7.next) {
case 0:
onMouseLeaveFn = jest.fn();
driver = createDriver(_react2.default.createElement(
_DropdownBase2.default,
_extends({}, defaultProps, { onMouseLeave: onMouseLeaveFn }),
_react2.default.createElement(
'div',
null,
'Hello'
)
));
_context7.next = 4;
return driver.mouseLeave();
case 4:
expect(onMouseLeaveFn).toHaveBeenCalledTimes(1);
case 5:
case 'end':
return _context7.stop();
}
}
}, _callee7, undefined);
})));
describe('uncontrolled open behaviour', function () {
it('should allow controlling the behaviour using a render prop', _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee8() {
var _createUncontrolledDr, args, driver;
return regeneratorRuntime.wrap(function _callee8$(_context8) {
while (1) {
switch (_context8.prev = _context8.next) {
case 0:
_createUncontrolledDr = createUncontrolledDriver(), args = _createUncontrolledDr.args, driver = _createUncontrolledDr.driver;
args.open();
_context8.t0 = expect;
_context8.next = 5;
return driver.isDropdownShown();
case 5:
_context8.t1 = _context8.sent;
(0, _context8.t0)(_context8.t1).toBeTruthy();
args.close();
_context8.t2 = expect;
_context8.next = 11;
return driver.isDropdownShown();
case 11:
_context8.t3 = _context8.sent;
(0, _context8.t2)(_context8.t3).toBeFalsy();
args.toggle();
_context8.t4 = expect;
_context8.next = 17;
return driver.isDropdownShown();
case 17:
_context8.t5 = _context8.sent;
(0, _context8.t4)(_context8.t5).toBeTruthy();
args.toggle();
_context8.t6 = expect;
_context8.next = 23;
return driver.isDropdownShown();
case 23:
_context8.t7 = _context8.sent;
(0, _context8.t6)(_context8.t7).toBeFalsy();
case 25:
case 'end':
return _context8.stop();
}
}
}, _callee8, undefined);
})));
it('should close on click outside', _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee9() {
var _createUncontrolledDr2, args, driver;
return regeneratorRuntime.wrap(function _callee9$(_context9) {
while (1) {
switch (_context9.prev = _context9.next) {
case 0:
_createUncontrolledDr2 = createUncontrolledDriver(), args = _createUncontrolledDr2.args, driver = _createUncontrolledDr2.driver;
args.open();
_context9.t0 = expect;
_context9.next = 5;
return driver.isDropdownShown();
case 5:
_context9.t1 = _context9.sent;
(0, _context9.t0)(_context9.t1).toBeTruthy();
_context9.next = 9;
return driver.clickOutside();
case 9:
_context9.t2 = expect;
_context9.next = 12;
return driver.isDropdownShown();
case 12:
_context9.t3 = _context9.sent;
(0, _context9.t2)(_context9.t3).toBeFalsy();
case 14:
case 'end':
return _context9.stop();
}
}
}, _callee9, undefined);
})));
it('should close when selecting an option', _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee10() {
var _createUncontrolledDr3, args, driver;
return regeneratorRuntime.wrap(function _callee10$(_context10) {
while (1) {
switch (_context10.prev = _context10.next) {
case 0:
_createUncontrolledDr3 = createUncontrolledDriver(), args = _createUncontrolledDr3.args, driver = _createUncontrolledDr3.driver;
args.open();
_context10.t0 = expect;
_context10.next = 5;
return driver.isDropdownShown();
case 5:
_context10.t1 = _context10.sent;
(0, _context10.t0)(_context10.t1).toBeTruthy();
_context10.next = 9;
return driver.selectOption(0);
case 9:
_context10.t2 = expect;
_context10.next = 12;
return driver.isDropdownShown();
case 12:
_context10.t3 = _context10.sent;
(0, _context10.t2)(_context10.t3).toBeFalsy();
case 14:
case 'end':
return _context10.stop();
}
}
}, _callee10, undefined);
})));
describe('keyDown handling', function () {
it('should delegate the event to the DropdownLayout', _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee11() {
var _createUncontrolledDr4, args, driver;
return regeneratorRuntime.wrap(function _callee11$(_context11) {
while (1) {
switch (_context11.prev = _context11.next) {
case 0:
_createUncontrolledDr4 = createUncontrolledDriver(), args = _createUncontrolledDr4.args, driver = _createUncontrolledDr4.driver;
// We'll press the ArrowDown key to highlight the next option, and then select it with the
// Enter key.
args.open();
_context11.next = 4;
return driver.keyDown('ArrowDown');
case 4:
_context11.t0 = expect;
_context11.next = 7;
return driver.isOptionHovered(0);
case 7:
_context11.t1 = _context11.sent;
(0, _context11.t0)(_context11.t1).toBeTruthy();
_context11.next = 11;
return driver.keyDown('Enter');
case 11:
args.open();
_context11.t2 = expect;
_context11.next = 15;
return driver.isOptionSelected(0);
case 15:
_context11.t3 = _context11.sent;
(0, _context11.t2)(_context11.t3).toBeTruthy();
case 17:
case 'end':
return _context11.stop();
}
}
}, _callee11, undefined);
})));
it.each([['Enter', 'Spacebar', 'ArrowDown']])('should open the DropdownLayout when the %s key is pressed', function () {
var _ref13 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee12(expectedKey) {
var _createUncontrolledDr5, driver;
return regeneratorRuntime.wrap(function _callee12$(_context12) {
while (1) {
switch (_context12.prev = _context12.next) {
case 0:
_createUncontrolledDr5 = createUncontrolledDriver(), driver = _createUncontrolledDr5.driver;
_context12.t0 = expect;
_context12.next = 4;
return driver.isDropdownShown();
case 4:
_context12.t1 = _context12.sent;
(0, _context12.t0)(_context12.t1).toBeFalsy();
_context12.next = 8;
return driver.keyDown(expectedKey);
case 8:
_context12.t2 = expect;
_context12.next = 11;
return driver.isDropdownShown();
case 11:
_context12.t3 = _context12.sent;
(0, _context12.t2)(_context12.t3).toBeTruthy();
case 13:
case 'end':
return _context12.stop();
}
}
}, _callee12, undefined);
}));
return function (_x) {
return _ref13.apply(this, arguments);
};
}());
});
describe('mouseLeave handling', function () {
it('should not close the popover when leaving the target element', _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee13() {
var _createUncontrolledDr6, driver;
return regeneratorRuntime.wrap(function _callee13$(_context13) {
while (1) {
switch (_context13.prev = _context13.next) {
case 0:
// This test handles a special case when the `close` function triggers directly on the
// `mouseleave` event of the target element. Normally, The `mouseleave` event will trigger
// when the user moves the cursor from the target element to the DropdownLayout, thus the
// DropdownLayout will be closed.
// This is not the desired behaviour. As a result, the DropdownBase handle this specific
// case.
// We'll use a custom render function
_createUncontrolledDr6 = createUncontrolledDriver(function (_ref15) {
var open = _ref15.open,
close = _ref15.close;
return _react2.default.createElement(
'div',
{ onMouseEnter: open, onMouseLeave: close },
'Hover me!'
);
}), driver = _createUncontrolledDr6.driver;
_context13.next = 3;
return driver.mouseEnterTarget();
case 3:
_context13.t0 = expect;
_context13.next = 6;
return driver.isDropdownShown();
case 6:
_context13.t1 = _context13.sent;
(0, _context13.t0)(_context13.t1).toBeTruthy();
_context13.next = 10;
return driver.mouseLeaveTarget();
case 10:
_context13.t2 = expect;
_context13.next = 13;
return driver.isDropdownShown();
case 13:
_context13.t3 = _context13.sent;
(0, _context13.t2)(_context13.t3).toBeTruthy();
_context13.next = 17;
return driver.mouseLeave();
case 17:
_context13.t4 = expect;
_context13.next = 20;
return driver.isDropdownShown();
case 20:
_context13.t5 = _context13.sent;
(0, _context13.t4)(_context13.t5).toBeFalsy();
case 22:
case 'end':
return _context13.stop();
}
}
}, _callee13, undefined);
})));
});
});
describe('controlled open behaviour', function () {
it('should allow controlling the behaviour using the `open` prop', _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee14() {
var _createControlledDriv, driver, wrapper;
return regeneratorRuntime.wrap(function _callee14$(_context14) {
while (1) {
switch (_context14.prev = _context14.next) {
case 0:
_createControlledDriv = createControlledDriver(), driver = _createControlledDriv.driver, wrapper = _createControlledDriv.wrapper;
wrapper.setProps({ open: true });
_context14.t0 = expect;
_context14.next = 5;
return driver.isDropdownShown();
case 5:
_context14.t1 = _context14.sent;
(0, _context14.t0)(_context14.t1).toBeTruthy();
wrapper.setProps({ open: false });
_context14.t2 = expect;
_context14.next = 11;
return driver.isDropdownShown();
case 11:
_context14.t3 = _context14.sent;
(0, _context14.t2)(_context14.t3).toBeFalsy();
case 13:
case 'end':
return _context14.stop();
}
}
}, _callee14, undefined);
})));
it('should not allow controlling the behaviour using a render prop', _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee15() {
var _createControlledDriv2, args, driver;
return regeneratorRuntime.wrap(function _callee15$(_context15) {
while (1) {
switch (_context15.prev = _context15.next) {
case 0:
_createControlledDriv2 = createControlledDriver(), args = _createControlledDriv2.args, driver = _createControlledDriv2.driver;
args.open();
_context15.t0 = expect;
_context15.next = 5;
return driver.isDropdownShown();
case 5:
_context15.t1 = _context15.sent;
(0, _context15.t0)(_context15.t1).toBeFalsy();
args.close();
_context15.t2 = expect;
_context15.next = 11;
return driver.isDropdownShown();
case 11:
_context15.t3 = _context15.sent;
(0, _context15.t2)(_context15.t3).toBeFalsy();
args.toggle();
_context15.t4 = expect;
_context15.next = 17;
return driver.isDropdownShown();
case 17:
_context15.t5 = _context15.sent;
(0, _context15.t4)(_context15.t5).toBeFalsy();
case 19:
case 'end':
return _context15.stop();
}
}
}, _callee15, undefined);
})));
it('should not close on click outside', _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee16() {
var _createControlledDriv3, driver, wrapper;
return regeneratorRuntime.wrap(function _callee16$(_context16) {
while (1) {
switch (_context16.prev = _context16.next) {
case 0:
_createControlledDriv3 = createControlledDriver(), driver = _createControlledDriv3.driver, wrapper = _createControlledDriv3.wrapper;
wrapper.setProps({ open: true });
_context16.t0 = expect;
_context16.next = 5;
return driver.isDropdownShown();
case 5:
_context16.t1 = _context16.sent;
(0, _context16.t0)(_context16.t1).toBeTruthy();
_context16.next = 9;
return driver.clickOutside();
case 9:
_context16.t2 = expect;
_context16.next = 12;
return driver.isDropdownShown();
case 12:
_context16.t3 = _context16.sent;
(0, _context16.t2)(_context16.t3).toBeTruthy();
case 14:
case 'end':
return _context16.stop();
}
}
}, _callee16, undefined);
})));
it('should not close when selecting an option', _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee17() {
var _createControlledDriv4, driver, wrapper;
return regeneratorRuntime.wrap(function _callee17$(_context17) {
while (1) {
switch (_context17.prev = _context17.next) {
case 0:
_createControlledDriv4 = createControlledDriver(), driver = _createControlledDriv4.driver, wrapper = _createControlledDriv4.wrapper;
wrapper.setProps({ open: true });
_context17.t0 = expect;
_context17.next = 5;
return driver.isDropdownShown();
case 5:
_context17.t1 = _context17.sent;
(0, _context17.t0)(_context17.t1).toBeTruthy();
_context17.next = 9;
return driver.selectOption(0);
case 9:
_context17.t2 = expect;
_context17.next = 12;
return driver.isDropdownShown();
case 12:
_context17.t3 = _context17.sent;
(0, _context17.t2)(_context17.t3).toBeTruthy();
case 14:
case 'end':
return _context17.stop();
}
}
}, _callee17, undefined);
})));
describe('keyDown handling', function () {
it('should not delegate the event to the DropdownLayout by default', _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee18() {
var _createControlledDriv5, driver, wrapper;
return regeneratorRuntime.wrap(function _callee18$(_context18) {
while (1) {
switch (_context18.prev = _context18.next) {
case 0:
_createControlledDriv5 = createControlledDriver(), driver = _createControlledDriv5.driver, wrapper = _createControlledDriv5.wrapper;
wrapper.setProps({ open: true });
_context18.next = 4;
return driver.keyDown('ArrowDown');
case 4:
_context18.t0 = expect;
_context18.next = 7;
return driver.isOptionHovered(0);
case 7:
_context18.t1 = _context18.sent;
(0, _context18.t0)(_context18.t1).toBeFalsy();
_context18.next = 11;
return driver.keyDown('Enter');
case 11:
_context18.t2 = expect;
_context18.next = 14;
return driver.isDropdownShown();
case 14:
_context18.t3 = _context18.sent;
(0, _context18.t2)(_context18.t3).toBeTruthy();
case 16:
case 'end':
return _context18.stop();
}
}
}, _callee18, undefined);
})));
});
});
describe('uncontrolled selection behaviour', function () {
it('should accept an initialSelectedId and use it', _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee19() {
var driver;
return regeneratorRuntime.wrap(function _callee19$(_context19) {
while (1) {
switch (_context19.prev = _context19.next) {
case 0:
driver = createDriver(_react2.default.createElement(
_DropdownBase2.default,
_extends({}, defaultProps, { open: true, initialSelectedId: 2 }),
_react2.default.createElement(
'div',
null,
'Hello'
)
));
_context19.t0 = expect;
_context19.next = 4;
return driver.isOptionSelected(2);
case 4:
_context19.t1 = _context19.sent;
(0, _context19.t0)(_context19.t1).toBeTruthy();
case 6:
case 'end':
return _context19.stop();
}
}
}, _callee19, undefined);
})));
it('should store the selection after user interaction', _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee20() {
var driver;
return regeneratorRuntime.wrap(function _callee20$(_context20) {
while (1) {
switch (_context20.prev = _context20.next) {
case 0:
driver = createDriver(_react2.default.createElement(
_DropdownBase2.default,
_extends({}, defaultProps, { open: true }),
_react2.default.createElement(
'div',
null,
'Hello'
)
));
_context20.next = 3;
return driver.selectOption(0);
case 3:
_context20.t0 = expect;
_context20.next = 6;
return driver.isOptionSelected(0);
case 6:
_context20.t1 = _context20.sent;
(0, _context20.t0)(_context20.t1).toBeTruthy();
_context20.next = 10;
return driver.selectOption(2);
case 10:
_context20.t2 = expect;
_context20.next = 13;
return driver.isOptionSelected(2);
case 13:
_context20.t3 = _context20.sent;
(0, _context20.t2)(_context20.t3).toBeTruthy();
case 15:
case 'end':
return _context20.stop();
}
}
}, _callee20, undefined);
})));
});
describe('controlled selection behaviour', function () {
it('should accept an initialSelectedId and use it', _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee21() {
var _createControlledDriv6, driver;
return regeneratorRuntime.wrap(function _callee21$(_context21) {
while (1) {
switch (_context21.prev = _context21.next) {
case 0:
_createControlledDriv6 = createControlledDriver(null, {
open: true,
onSelect: jest.fn(),
selectedId: 0,
initialSelectedId: 2
}), driver = _createControlledDriv6.driver;
_context21.t0 = expect;
_context21.next = 4;
return driver.isOptionSelected(2);
case 4:
_context21.t1 = _context21.sent;
(0, _context21.t0)(_context21.t1).toBeTruthy();
case 6:
case 'end':
return _context21.stop();
}
}
}, _callee21, undefined);
})));
it('should update according to the selectedId', _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee22() {
var _createControlledDriv7, driver, wrapper;
return regeneratorRuntime.wrap(function _callee22$(_context22) {
while (1) {
switch (_context22.prev = _context22.next) {
case 0:
_createControlledDriv7 = createControlledDriver(null, {
open: true,
onSelect: jest.fn(),
selectedId: 1
}), driver = _createControlledDriv7.driver, wrapper = _createControlledDriv7.wrapper;
_context22.t0 = expect;
_context22.next = 4;
return driver.isOptionSelected(1);
case 4:
_context22.t1 = _context22.sent;
(0, _context22.t0)(_context22.t1).toBeTruthy();
wrapper.setProps({ selectedId: 2 });
_context22.t2 = expect;
_context22.next = 10;
return driver.isOptionSelected(2);
case 10:
_context22.t3 = _context22.sent;
(0, _context22.t2)(_context22.t3).toBeTruthy();
case 12:
case 'end':
return _context22.stop();
}
}
}, _callee22, undefined);
})));
it('should not store the selection after user interaction', _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee23() {
var _createControlledDriv8, driver;
return regeneratorRuntime.wrap(function _callee23$(_context23) {
while (1) {
switch (_context23.prev = _context23.next) {
case 0:
_createControlledDriv8 = createControlledDriver(null, {
open: true,
onSelect: jest.fn(),
selectedId: 1
}), driver = _createControlledDriv8.driver;
_context23.next = 3;
return driver.selectOption(0);
case 3:
_context23.t0 = expect;
_context23.next = 6;
return driver.isOptionSelected(0);
case 6:
_context23.t1 = _context23.sent;
(0, _context23.t0)(_context23.t1).toBeFalsy();
_context23.t2 = expect;
_context23.next = 11;
return driver.isOptionSelected(1);
case 11:
_context23.t3 = _context23.sent;
(0, _context23.t2)(_context23.t3).toBeTruthy();
_context23.next = 15;
return driver.selectOption(2);
case 15:
_context23.t4 = expect;
_context23.next = 18;
return driver.isOptionSelected(2);
case 18:
_context23.t5 = _context23.sent;
(0, _context23.t4)(_context23.t5).toBeFalsy();
_context23.t6 = expect;
_context23.next = 23;
return driver.isOptionSelected(1);
case 23:
_context23.t7 = _context23.sent;
(0, _context23.t6)(_context23.t7).toBeTruthy();
case 25:
case 'end':
return _context23.stop();
}
}
}, _callee23, undefined);
})));
});
});