UNPKG

@atlaskit/tooltip

Version:

A tooltip briefly describes an interactive element on mouse hover or keyboard focus.

49 lines (48 loc) • 1.78 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.waitForTooltipToHide = waitForTooltipToHide; var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator")); var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator")); var _flushPopoverExit = require("@atlaskit/top-layer/testing/flush-popover-exit"); /** * Waits for a tooltip that has started hiding to finish hiding in jsdom. * * Requires React 18.3 or newer. * * With `platform-dst-top-layer-tooltip` on, the tooltip hides through a top-layer * `Popover`, which jest fake timers alone cannot flush - see * `@atlaskit/top-layer/testing/flush-popover-exit`, which this delegates to. * * Call this after the hide `delay` has been flushed. * * @example * await user.unhover(trigger); * // flush the hide delay * act(() => { * jest.runOnlyPendingTimers(); * }); * await waitForTooltipToHide(); * expect(screen.queryByTestId('tooltip')).not.toBeInTheDocument(); * expect(onHide).toHaveBeenCalledTimes(1); */ function waitForTooltipToHide() { return _waitForTooltipToHide.apply(this, arguments); } function _waitForTooltipToHide() { _waitForTooltipToHide = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() { return _regenerator.default.wrap(function (_context) { while (1) switch (_context.prev = _context.next) { case 0: _context.next = 1; return (0, _flushPopoverExit.flushPopoverExit)(); case 1: case "end": return _context.stop(); } }, _callee); })); return _waitForTooltipToHide.apply(this, arguments); }