UNPKG

@helpscout/cyan

Version:

Cypress-like Testing for React + JSDOM

56 lines (42 loc) 1.37 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "keyCode", { enumerable: true, get: function get() { return _keycode.default; } }); exports.typeCommand = exports.simulateKeyEvent = void 0; var _keycode = _interopRequireDefault(require("keycode")); var _fireEvent = _interopRequireDefault(require("../fireEvent")); var _timers = require("../timers"); var _is = require("./is.utils"); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var simulateKeyEvent = function (keyEvent, command, node) { if (!(0, _is.isString)(command)) return; var commands = command.split(/{(.*?)}/); /* istanbul ignore next */ var targetNode = node || document; commands.filter(function (cmd) { return cmd; }).forEach(function (command) { var keyCodeValue = (0, _keycode.default)(command); if ((0, _is.isDefined)(keyCodeValue)) { _fireEvent.default[keyEvent](targetNode, { keyCode: keyCodeValue }); (0, _timers.runAllTimers)(); } }); }; exports.simulateKeyEvent = simulateKeyEvent; var typeCommand = function (command, node) { if (node === void 0) { node = document; } simulateKeyEvent('keyDown', command, node); simulateKeyEvent('keyUp', command, node); }; exports.typeCommand = typeCommand;