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