UNPKG

@testing-library/user-event

Version:
60 lines (55 loc) 2.09 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); require('../setup/index.js'); require('../utils/click/isClickableInput.js'); require('../utils/dataTransfer/Clipboard.js'); require('../event/eventMap.js'); require('../event/behavior/click.js'); require('../event/behavior/cut.js'); require('../event/behavior/keydown.js'); require('../event/behavior/keypress.js'); require('../event/behavior/keyup.js'); require('../event/behavior/paste.js'); require('@testing-library/dom'); require('../utils/edit/maxLength.js'); require('../utils/edit/isEditable.js'); require('@testing-library/dom/dist/helpers.js'); require('../utils/keyDef/readNextDescriptor.js'); require('../utils/misc/level.js'); var wait = require('../utils/misc/wait.js'); require('../options.js'); var parseKeyDef = require('./parseKeyDef.js'); var config = require('../setup/config.js'); async function keyboard(text) { const actions = parseKeyDef.parseKeyDef(this[config.Config].keyboardMap, text); for(let i = 0; i < actions.length; i++){ await wait.wait(this[config.Config]); await keyboardAction(this[config.Config], actions[i]); } } async function keyboardAction(config, { keyDef , releasePrevious , releaseSelf , repeat }) { const { system } = config; // Release the key automatically if it was pressed before. if (system.keyboard.isKeyPressed(keyDef)) { await system.keyboard.keyup(config, keyDef); } if (!releasePrevious) { for(let i = 1; i <= repeat; i++){ await system.keyboard.keydown(config, keyDef); if (i < repeat) { await wait.wait(config); } } // Release the key only on the last iteration on `state.repeatKey`. if (releaseSelf) { await system.keyboard.keyup(config, keyDef); } } } async function releaseAllKeys(config) { for (const k of config.system.keyboard.getPressedKeys()){ await config.system.keyboard.keyup(config, k); } } exports.keyboard = keyboard; exports.releaseAllKeys = releaseAllKeys;