KeyEvents.js 575 B

1234567891011121314151617181920212223
  1. import {
  2. isString,
  3. assign
  4. } from 'min-dash';
  5. /**
  6. * Create a fake key event for testing purposes.
  7. *
  8. * @param {String|Number} key the key or keyCode/charCode
  9. * @param {Object} [attrs]
  10. *
  11. * @return {Event}
  12. */
  13. export function createKeyEvent(key, attrs) {
  14. var event = document.createEvent('Events') || new document.defaultView.CustomEvent('keyEvent');
  15. // init and mark as bubbles / cancelable
  16. event.initEvent('keydown', false, true);
  17. var keyAttrs = isString(key) ? { key: key } : { keyCode: key, which: key };
  18. return assign(event, keyAttrs, attrs || {});
  19. }