UNPKG

wix-style-react

Version:
1,048 lines (904 loc) • 34.4 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 _eventually = require('../../test/utils/eventually'); var _eventually2 = _interopRequireDefault(_eventually); var _react3 = require('../../test/utils/react'); var _Tooltip = require('./Tooltip.driver'); var _Tooltip2 = _interopRequireDefault(_Tooltip); var _Tooltip3 = require('./Tooltip'); var _Tooltip4 = _interopRequireDefault(_Tooltip3); var _testkit = require('../../testkit'); var _Button = require('../Button'); var _Button2 = _interopRequireDefault(_Button); 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('Tooltip', function () { afterEach(function () { return (0, _react3.cleanup)(); }); var render = (0, _react3.createRendererWithDriver)(_Tooltip2.default); var createDriver = function createDriver(jsx) { return render(jsx).driver; }; var _props = { showDelay: 5, hideDelay: 5, content: "I'm the content" }; var children = _react2.default.createElement( 'div', null, 'Here there is a children' ); it('should be hidden by default', function () { var driver = createDriver(_react2.default.createElement( _Tooltip4.default, _props, children )); expect(driver.isShown()).toBeFalsy(); }); it('should show a tooltip once hovering', function () { var driver = createDriver(_react2.default.createElement( _Tooltip4.default, _props, children )); driver.mouseEnter(); expect(driver.isShown()).toBeFalsy(); return resolveIn(30).then(function () { expect(driver.isShown()).toBeTruthy(); }); }); it('should hide when mouse leaving', function () { var driver = createDriver(_react2.default.createElement( _Tooltip4.default, _props, children )); driver.mouseEnter(); expect(driver.isShown()).toBeFalsy(); return resolveIn(30).then(function () { expect(driver.isShown()).toBeTruthy(); driver.mouseLeave(); return resolveIn(30).then(function () { expect(driver.isShown()).toBeFalsy(); }); }); }); it('should test inner component', function () { var dataHook = 'button_data_hook'; var buttonContent = _react2.default.createElement( 'div', null, 'Custom Content...\xA0', _react2.default.createElement( _Button2.default, { dataHook: dataHook, id: 'inner-button', height: 'small' }, 'Button content' ) ); var driver = createDriver(_react2.default.createElement( _Tooltip4.default, { showDelay: 5, hideDelay: 5, content: buttonContent }, children )); driver.mouseEnter(); expect(driver.isShown()).toBeFalsy(); return resolveIn(30).then(function () { expect(driver.isShown()).toBeTruthy(); var buttonTestkit = (0, _testkit.buttonTestkitFactory)({ wrapper: driver.getTooltipWrapper(), dataHook: dataHook }); expect(buttonTestkit.getButtonTextContent()).toBe('Button content'); }); }); it('should not override focus event', function () { var onFocus = jest.fn(); var onFocusedChild = _react2.default.createElement( 'div', { onFocus: onFocus }, 'Here there is a children' ); var driver = createDriver(_react2.default.createElement( _Tooltip4.default, _props, onFocusedChild )); driver.focus(); expect(onFocus).toBeCalled(); }); it('should not override blur event', function () { var onBlur = jest.fn(); var onBluredChild = _react2.default.createElement( 'div', { onBlur: onBlur }, 'Here there is a children' ); var driver = createDriver(_react2.default.createElement( _Tooltip4.default, _props, onBluredChild )); driver.blur(); expect(onBlur).toBeCalled(); }); it('should not override click event', function () { var onClick = jest.fn(); var onClickedChild = _react2.default.createElement( 'div', { onClick: onClick }, 'Here there is a children' ); var driver = createDriver(_react2.default.createElement( _Tooltip4.default, _props, onClickedChild )); driver.click(); expect(onClick).toBeCalled(); }); it('should not override mouse enter event', function () { var onMouseEnter = jest.fn(); var onMouseEnteredChild = _react2.default.createElement( 'div', { onMouseEnter: onMouseEnter }, 'Here there is a children' ); var driver = createDriver(_react2.default.createElement( _Tooltip4.default, _props, onMouseEnteredChild )); driver.mouseEnter(); expect(onMouseEnter).toBeCalled(); }); it('should not override mouse leave event', function () { var onMouseLeave = jest.fn(); var onMouseLeavedChild = _react2.default.createElement( 'div', { onMouseLeave: onMouseLeave }, 'Here there is a children' ); var driver = createDriver(_react2.default.createElement( _Tooltip4.default, _props, onMouseLeavedChild )); driver.mouseLeave(); expect(onMouseLeave).toBeCalled(); }); it('should support error theme', function () { var driver = createDriver(_react2.default.createElement( _Tooltip4.default, _extends({ theme: 'error' }, _props), children )); driver.mouseEnter(); expect(driver.hasErrorTheme()).toBeFalsy(); return resolveIn(30).then(function () { expect(driver.hasErrorTheme()).toBeTruthy(); }); }); it('should support dark theme', function () { var driver = createDriver(_react2.default.createElement( _Tooltip4.default, _extends({ theme: 'dark' }, _props), children )); driver.mouseEnter(); expect(driver.hasDarkTheme()).toBeFalsy(); return resolveIn(30).then(function () { expect(driver.hasDarkTheme()).toBeTruthy(); }); }); it('should support light theme', function () { var driver = createDriver(_react2.default.createElement( _Tooltip4.default, _extends({ theme: 'light' }, _props), children )); driver.mouseEnter(); expect(driver.hasLightTheme()).toBeFalsy(); return resolveIn(30).then(function () { expect(driver.hasLightTheme()).toBeTruthy(); }); }); it('should have a children', function () { var driver = createDriver(_react2.default.createElement( _Tooltip4.default, _props, children )); expect(driver.getChildren()).toBe('Here there is a children'); }); it('should have a content', function () { var driver = createDriver(_react2.default.createElement( _Tooltip4.default, _props, children )); driver.mouseEnter(); return resolveIn(30).then(function () { expect(driver.getContent()).toBe("I'm the content"); }); }); it('should cancel mouse leave, when followed by mouse enter immediately', function () { var driver = createDriver(_react2.default.createElement( _Tooltip4.default, _props, children )); driver.mouseEnter(); driver.mouseLeave(); driver.mouseEnter(); return resolveIn(30).then(function () { expect(driver.isShown()).toBe(true); }); }); it('should call onShow when tooltip is shown', function () { var onShow = jest.fn(); var driver = createDriver(_react2.default.createElement( _Tooltip4.default, _extends({}, _props, { onShow: onShow }), children )); driver.mouseEnter(); expect(onShow).not.toHaveBeenCalled(); return resolveIn(30).then(function () { expect(onShow).toHaveBeenCalled(); expect(driver.isShown()).toBeTruthy(); }); }); it('should call onHide when tooltip is hidden', function () { var onHide = jest.fn(); var driver = createDriver(_react2.default.createElement( _Tooltip4.default, _extends({}, _props, { onHide: onHide }), children )); driver.mouseEnter(); return resolveIn(30).then(function () { expect(driver.isShown()).toBeTruthy(); driver.mouseLeave(); return resolveIn(30).then(function () { expect(driver.isShown()).toBeFalsy(); expect(onHide).toHaveBeenCalled(); }); }); }); it('should append to element selected', function () { var el = document.createElement('div'); var driver = createDriver(_react2.default.createElement( _Tooltip4.default, _extends({}, _props, { appendTo: el }), children )); driver.mouseEnter(); return resolveIn(30).then(function () { expect(el.childElementCount).toEqual(1); }); }); describe('custom triggers', function () { it('should hide tooltip', _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee() { var props, _render, driver, rerender; return regeneratorRuntime.wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: props = _extends({}, _props, { hideTrigger: 'custom', showTrigger: 'custom', children: children }); _render = render(_react2.default.createElement(_Tooltip4.default, props)), driver = _render.driver, rerender = _render.rerender; driver.mouseEnter(); _context.next = 5; return (0, _eventually2.default)(function () { return expect(driver.isShown()).toBeFalsy(); }); case 5: rerender(_react2.default.createElement(_Tooltip4.default, _extends({}, props, { active: true }))); _context.next = 8; return (0, _eventually2.default)(function () { return expect(driver.isShown()).toBeTruthy(); }); case 8: rerender(_react2.default.createElement(_Tooltip4.default, _extends({}, props, { active: false }))); _context.next = 11; return (0, _eventually2.default)(function () { return expect(driver.isShown()).toBeFalsy(); }); case 11: case 'end': return _context.stop(); } } }, _callee, undefined); }))); it('should not show tooltip when transitioned to both active and disabled', _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee2() { var props, _render2, driver, rerender; return regeneratorRuntime.wrap(function _callee2$(_context2) { while (1) { switch (_context2.prev = _context2.next) { case 0: props = _extends({}, _props, { hideTrigger: 'custom', showTrigger: 'custom', active: false, disabled: false, children: children }); _render2 = render(_react2.default.createElement(_Tooltip4.default, props)), driver = _render2.driver, rerender = _render2.rerender; expect(driver.isShown()).toBeFalsy(); _context2.next = 5; return (0, _eventually2.default)(function () { return expect(driver.isShown()).toBeFalsy(); }); case 5: rerender(_react2.default.createElement(_Tooltip4.default, _extends({}, props, { active: true, disabled: true }))); expect(driver.isShown()).toBeFalsy(); case 7: case 'end': return _context2.stop(); } } }, _callee2, undefined); }))); it('should close tooltip when disabled changed to true when was active true before', _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee3() { var props, _render3, driver, rerender; return regeneratorRuntime.wrap(function _callee3$(_context3) { while (1) { switch (_context3.prev = _context3.next) { case 0: props = _extends({}, _props, { hideTrigger: 'custom', showTrigger: 'custom', active: true, disabled: false, children: children }); _render3 = render(_react2.default.createElement(_Tooltip4.default, props)), driver = _render3.driver, rerender = _render3.rerender; _context3.next = 4; return (0, _eventually2.default)(function () { return expect(driver.isShown()).toBeTruthy(); }); case 4: rerender(_react2.default.createElement(_Tooltip4.default, _extends({}, props, { disabled: true }))); _context3.next = 7; return (0, _eventually2.default)(function () { return expect(driver.isShown()).toBeFalsy(); }); case 7: case 'end': return _context3.stop(); } } }, _callee3, undefined); }))); }); describe('placement attribute', function () { it('should be top by default', function () { var driver = createDriver(_react2.default.createElement( _Tooltip4.default, _extends({}, _props), children )); driver.mouseEnter(); return resolveIn(30).then(function () { expect(driver.getPlacement()).toBe('top'); }); }); it('should be bottom', function () { var driver = createDriver(_react2.default.createElement( _Tooltip4.default, _extends({}, _extends({}, _props), { placement: 'bottom' }), children )); driver.mouseEnter(); return resolveIn(30).then(function () { expect(driver.getPlacement()).toBe('bottom'); }); }); it('should be top', function () { var driver = createDriver(_react2.default.createElement( _Tooltip4.default, _extends({}, _extends({}, _props), { placement: 'top' }), children )); driver.mouseEnter(); return resolveIn(30).then(function () { expect(driver.getPlacement()).toBe('top'); }); }); it('should be left', function () { var driver = createDriver(_react2.default.createElement( _Tooltip4.default, _extends({}, _extends({}, _props), { placement: 'left' }), children )); driver.mouseEnter(); return resolveIn(30).then(function () { expect(driver.getPlacement()).toBe('left'); }); }); it('should be right', function () { var driver = createDriver(_react2.default.createElement( _Tooltip4.default, _extends({}, _extends({}, _props), { placement: 'right' }), children )); driver.mouseEnter(); return resolveIn(30).then(function () { expect(driver.getPlacement()).toBe('right'); }); }); }); describe('maxWidth attribute', function () { it('should set default maxWidth 204', function () { var driver = createDriver(_react2.default.createElement( _Tooltip4.default, _props, children )); driver.mouseEnter(); return resolveIn(30).then(function () { expect(driver.getMaxWidth()).toBe('204px'); }); }); it('should set custom maxWidth', function () { var props = _extends({}, _props, { maxWidth: '400px' }); var driver = createDriver(_react2.default.createElement( _Tooltip4.default, props, children )); driver.mouseEnter(); return resolveIn(30).then(function () { expect(driver.getMaxWidth()).toBe('400px'); }); }); }); describe('minWidth attribute', function () { it('should not have any min-width as default', function () { var driver = createDriver(_react2.default.createElement( _Tooltip4.default, _props, children )); driver.mouseEnter(); return resolveIn(30).then(function () { expect(driver.getMinWidth()).toBe(undefined); }); }); it('should set custom min-width', function () { var props = _extends({}, _props, { minWidth: '150px' }); var driver = createDriver(_react2.default.createElement( _Tooltip4.default, props, children )); driver.mouseEnter(); return resolveIn(30).then(function () { expect(driver.getMinWidth()).toBe('150px'); }); }); }); describe('alignment attribute', function () { it('should set default left', function () { var driver = createDriver(_react2.default.createElement( _Tooltip4.default, _props, children )); driver.mouseEnter(); return resolveIn(30).then(function () { expect(driver.getAlignment()).toBe('left'); }); }); }); describe('padding attribute', function () { it('should set default to none', function () { var driver = createDriver(_react2.default.createElement( _Tooltip4.default, _props, children )); driver.mouseEnter(); return resolveIn(30).then(function () { expect(driver.getPadding()).toBe(undefined); }); }); it('should set custom padding', function () { var props = _extends({}, _props, { padding: '5px' }); var driver = createDriver(_react2.default.createElement( _Tooltip4.default, props, children )); driver.mouseEnter(); return resolveIn(30).then(function () { expect(driver.getPadding()).toBe('5px'); }); }); }); describe('showArrow prop', function () { var props = _extends({}, _props, { content: 'This is the content' }); it('should have an arrow by default', function () { var driver = createDriver(_react2.default.createElement( _Tooltip4.default, props, children )); driver.mouseEnter(); return resolveIn(30).then(function () { expect(driver.hasArrow()).toBeTruthy(); }); }); it('should not show an arrow if `showArrow` is set to false', function () { var driver = createDriver(_react2.default.createElement( _Tooltip4.default, _extends({}, props, { showArrow: false }), children )); driver.mouseEnter(); return resolveIn(30).then(function () { expect(driver.hasArrow()).toBeFalsy(); }); }); }); describe('popover', function () { it('should show a tooltip on click', function () { var driver = createDriver(_react2.default.createElement( _Tooltip4.default, _extends({ popover: true }, _props), children )); driver.click(); expect(driver.isShown()).toBeFalsy(); return resolveIn(30).then(function () { expect(driver.isShown()).toBeTruthy(); }); }); it('should hide a tooltip on click', function () { var driver = createDriver(_react2.default.createElement( _Tooltip4.default, _extends({ popover: true }, _props), children )); driver.click(); expect(driver.isShown()).toBeFalsy(); return resolveIn(30).then(function () { expect(driver.isShown()).toBeTruthy(); driver.click(); return resolveIn(30).then(function () { expect(driver.isShown()).toBeFalsy(); }); }); }); }); it('should exist with default props when appendToParent', function () { var _render4 = render(_react2.default.createElement( _Tooltip4.default, _extends({}, _props, { appendToParent: true }), children )), driver = _render4.driver; driver.mouseEnter(); expect(driver.isShown()).toBeFalsy(); return resolveIn(30).then(function () { expect(driver.isShown()).toBeTruthy(); expect(driver.getContent()).toBe("I'm the content"); expect(driver.hasLightTheme()).toBeTruthy(); expect(driver.getPlacement()).toBe('top'); }); }); describe('themse', function () { it('should have dark theme when appendToParent', function () { var _render5 = render(_react2.default.createElement( _Tooltip4.default, _extends({}, _props, { appendToParent: true, theme: 'dark' }), children )), driver = _render5.driver; driver.mouseEnter(); return resolveIn(30).then(function () { expect(driver.hasDarkTheme()).toBeTruthy(); }); }); it('should have error theme when appendToParent', function () { var _render6 = render(_react2.default.createElement( _Tooltip4.default, _extends({}, _props, { appendToParent: true, theme: 'error' }), children )), driver = _render6.driver; driver.mouseEnter(); return resolveIn(30).then(function () { expect(driver.hasErrorTheme()).toBeTruthy(); }); }); }); describe('contentHook', function () { var defaultProps = { showDelay: 5, hideDelay: 5, content: "I'm the content", children: children }; it('isShown should work when child is a Custom Component', _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee4() { var _render7, driver; return regeneratorRuntime.wrap(function _callee4$(_context4) { while (1) { switch (_context4.prev = _context4.next) { case 0: _render7 = render(_react2.default.createElement( _Tooltip4.default, { showDelay: 5, dataHook: 'my-tooltip', content: 'I\'m the content' }, _react2.default.createElement(_Button2.default, null) )), driver = _render7.driver; driver.mouseEnter(); _context4.next = 4; return (0, _eventually2.default)(function () { expect(driver.isShown()).toBeTruthy(); }); case 4: case 'end': return _context4.stop(); } } }, _callee4, undefined); }))); it('isShown should differentiate between different tooltips given dataHooks provided', _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee5() { var _render8, firstTooltipDriver, _render9, secondTooltipDriver; return regeneratorRuntime.wrap(function _callee5$(_context5) { while (1) { switch (_context5.prev = _context5.next) { case 0: _render8 = render(_react2.default.createElement(_Tooltip4.default, _extends({}, defaultProps, { dataHook: 'firstTooltip' }))), firstTooltipDriver = _render8.driver; _render9 = render(_react2.default.createElement(_Tooltip4.default, _extends({}, defaultProps, { dataHook: 'secondTooltip' }))), secondTooltipDriver = _render9.driver; firstTooltipDriver.mouseEnter(); _context5.next = 5; return (0, _eventually2.default)(function () { expect(firstTooltipDriver.isShown()).toBeTruthy(); expect(secondTooltipDriver.isShown()).toBeFalsy(); }); case 5: case 'end': return _context5.stop(); } } }, _callee5, undefined); }))); it('isShown should differentiate between different tooltips given dataHooks NOT provided', _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee6() { var _render10, firstTooltipDriver, _render11, secondTooltipDriver; return regeneratorRuntime.wrap(function _callee6$(_context6) { while (1) { switch (_context6.prev = _context6.next) { case 0: _render10 = render(_react2.default.createElement(_Tooltip4.default, defaultProps)), firstTooltipDriver = _render10.driver; _render11 = render(_react2.default.createElement(_Tooltip4.default, defaultProps)), secondTooltipDriver = _render11.driver; firstTooltipDriver.mouseEnter(); _context6.next = 5; return (0, _eventually2.default)(function () { expect(firstTooltipDriver.isShown()).toBeTruthy(); expect(secondTooltipDriver.isShown()).toBeFalsy(); }); case 5: case 'end': return _context6.stop(); } } }, _callee6, undefined); }))); it('should keep contentHook when re-rendered', _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee7() { var _render12, container, rerender, contentHook1, contentHook2; return regeneratorRuntime.wrap(function _callee7$(_context7) { while (1) { switch (_context7.prev = _context7.next) { case 0: _render12 = render(_react2.default.createElement(_Tooltip4.default, defaultProps)), container = _render12.container, rerender = _render12.rerender; contentHook1 = container.querySelector('[data-content-hook]').getAttribute('data-content-hook'); rerender(_react2.default.createElement(_Tooltip4.default, _extends({}, defaultProps, { showDelay: 6 }))); contentHook2 = container.querySelector('[data-content-hook]').getAttribute('data-content-hook'); expect(contentHook1).toBe(contentHook2); case 5: case 'end': return _context7.stop(); } } }, _callee7, undefined); }))); it('should update contentHook when dataHook changes', _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee8() { var _render13, container, rerender, driver, contentHook1, contentHook2; return regeneratorRuntime.wrap(function _callee8$(_context8) { while (1) { switch (_context8.prev = _context8.next) { case 0: _render13 = render(_react2.default.createElement(_Tooltip4.default, _extends({}, defaultProps, { dataHook: 'firstDataHook' }))), container = _render13.container, rerender = _render13.rerender, driver = _render13.driver; driver.mouseEnter(); _context8.next = 4; return (0, _eventually2.default)(function () { return expect(driver.isShown()).toBeTruthy(); }); case 4: contentHook1 = container.querySelector('[data-content-hook]').getAttribute('data-content-hook'); expect(contentHook1).toContain('firstDataHook'); expect(document.body.querySelector('[data-hook="' + contentHook1 + '"]')).toBeTruthy(); driver.mouseLeave(); _context8.next = 10; return (0, _eventually2.default)(function () { return expect(driver.isShown()).toBeFalsy(); }); case 10: rerender(_react2.default.createElement(_Tooltip4.default, _extends({}, defaultProps, { dataHook: 'secondDataHook' }))); driver.mouseEnter(); _context8.next = 14; return (0, _eventually2.default)(function () { return expect(driver.isShown()).toBeTruthy(); }); case 14: contentHook2 = container.querySelector('[data-content-hook]').getAttribute('data-content-hook'); expect(contentHook2).toContain('secondDataHook'); expect(document.body.querySelector('[data-hook="' + contentHook2 + '"]')).toBeTruthy(); case 17: case 'end': return _context8.stop(); } } }, _callee8, undefined); }))); it('should differentiate between different tooltips for all related driver methods', _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee9() { var _render14, firstDriver, _render15, secondDriver, _render16, thirdDriver; return regeneratorRuntime.wrap(function _callee9$(_context9) { while (1) { switch (_context9.prev = _context9.next) { case 0: _render14 = render(_react2.default.createElement(_Tooltip4.default, _extends({}, defaultProps, { theme: 'error', showTrigger: 'click', placement: 'top' }))), firstDriver = _render14.driver; _render15 = render(_react2.default.createElement(_Tooltip4.default, _extends({}, defaultProps, { theme: 'dark', showTrigger: 'click', placement: 'bottom' }))), secondDriver = _render15.driver; _render16 = render(_react2.default.createElement(_Tooltip4.default, _extends({}, defaultProps, { theme: 'light', showTrigger: 'click', showImmediately: true, showArrow: false }))), thirdDriver = _render16.driver; firstDriver.click(); secondDriver.click(); thirdDriver.click(); _context9.next = 8; return (0, _eventually2.default)(function () { expect(firstDriver.isShown()).toBeTruthy(); expect(secondDriver.isShown()).toBeTruthy(); expect(thirdDriver.isShown()).toBeTruthy(); }); case 8: expect(firstDriver.hasErrorTheme()).toBeTruthy(); expect(firstDriver.hasDarkTheme()).toBeFalsy(); expect(firstDriver.hasLightTheme()).toBeFalsy(); expect(firstDriver.hasAnimationClass()).toBeTruthy(); expect(firstDriver.hasArrow()).toBeTruthy(); expect(firstDriver.getPlacement()).toBe('top'); expect(secondDriver.hasErrorTheme()).toBeFalsy(); expect(secondDriver.hasDarkTheme()).toBeTruthy(); expect(secondDriver.hasLightTheme()).toBeFalsy(); expect(secondDriver.getPlacement()).toBe('bottom'); expect(thirdDriver.hasErrorTheme()).toBeFalsy(); expect(thirdDriver.hasDarkTheme()).toBeFalsy(); expect(thirdDriver.hasLightTheme()).toBeTruthy(); expect(thirdDriver.hasAnimationClass()).toBeFalsy(); expect(thirdDriver.hasArrow()).toBeFalsy(); case 23: case 'end': return _context9.stop(); } } }, _callee9, undefined); }))); }); describe('enzyme testkit', function () { it('should remove a tooltip immediately once the component is destroyed', _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee10() { var _render17, driver; return regeneratorRuntime.wrap(function _callee10$(_context10) { while (1) { switch (_context10.prev = _context10.next) { case 0: _render17 = render(_react2.default.createElement( _Tooltip4.default, _extends({}, _props, { hideDelay: 1000 }), children )), driver = _render17.driver; driver.mouseEnter(); _context10.next = 4; return (0, _eventually2.default)(function () { return expect(driver.isShown()).toBeTruthy(); }); case 4: (0, _react3.cleanup)(); expect(driver.isShown()).toBeFalsy(); case 6: case 'end': return _context10.stop(); } } }, _callee10, undefined); }))); it('should have fadeIn class and delay when showImmediately is unspecified', function () { var driver = createDriver(_react2.default.createElement( _Tooltip4.default, _extends({}, _props, { content: _react2.default.createElement( 'div', null, 'HELLO WORLD' ) }), children )); driver.mouseEnter(); return resolveIn(30).then(function () { expect(driver.hasAnimationClass()).toBeTruthy(); }); }); it('should have fadeIn class and delay when showImmediately is false', function () { var driver = createDriver(_react2.default.createElement( _Tooltip4.default, _extends({}, _props, { content: _react2.default.createElement( 'div', null, 'HELLO WORLD' ), showImmediately: false }), children )); driver.mouseEnter(); return resolveIn(30).then(function () { expect(driver.hasAnimationClass()).toBeTruthy(); }); }); it('should not have fadeIn class and no delay when showImmediately is true', function () { var driver = createDriver(_react2.default.createElement( _Tooltip4.default, _extends({}, _props, { content: _react2.default.createElement( 'div', null, 'HELLO WORLD' ), showImmediately: true }), children )); driver.mouseEnter(); expect(driver.hasAnimationClass()).toBeFalsy(); }); }); describe('assertExistsWrapper', function () { it('should return exists false', function () { var driver = (0, _Tooltip2.default)({ element: null }); expect(driver.exists()).toBeFalsy(); }); it('should throw error', function () { var driver = (0, _Tooltip2.default)({ element: null }); expect(function () { return driver.isShown(); }).toThrowError('Tooltip'); }); }); }); function resolveIn(timeout) { return new Promise(function (resolve) { setTimeout(function () { resolve({}); }, timeout); }); }