1 | ;
|
2 |
|
3 | Object.defineProperty(exports, "__esModule", {
|
4 | value: true
|
5 | });
|
6 | exports.fireEvent = void 0;
|
7 |
|
8 | var _dom = require("@testing-library/dom");
|
9 |
|
10 | // react-testing-library's version of fireEvent will call
|
11 | // dom-testing-library's version of fireEvent. The reason
|
12 | // we make this distinction however is because we have
|
13 | // a few extra events that work a bit differently
|
14 | const fireEvent = (...args) => (0, _dom.fireEvent)(...args);
|
15 |
|
16 | exports.fireEvent = fireEvent;
|
17 | Object.keys(_dom.fireEvent).forEach(key => {
|
18 | fireEvent[key] = (...args) => _dom.fireEvent[key](...args);
|
19 | }); // React event system tracks native mouseOver/mouseOut events for
|
20 | // running onMouseEnter/onMouseLeave handlers
|
21 | // @link https://github.com/facebook/react/blob/b87aabdfe1b7461e7331abb3601d9e6bb27544bc/packages/react-dom/src/events/EnterLeaveEventPlugin.js#L24-L31
|
22 |
|
23 | const mouseEnter = fireEvent.mouseEnter;
|
24 | const mouseLeave = fireEvent.mouseLeave;
|
25 |
|
26 | fireEvent.mouseEnter = (...args) => {
|
27 | mouseEnter(...args);
|
28 | return fireEvent.mouseOver(...args);
|
29 | };
|
30 |
|
31 | fireEvent.mouseLeave = (...args) => {
|
32 | mouseLeave(...args);
|
33 | return fireEvent.mouseOut(...args);
|
34 | };
|
35 |
|
36 | const select = fireEvent.select;
|
37 |
|
38 | fireEvent.select = (node, init) => {
|
39 | select(node, init); // React tracks this event only on focused inputs
|
40 |
|
41 | node.focus(); // React creates this event when one of the following native events happens
|
42 | // - contextMenu
|
43 | // - mouseUp
|
44 | // - dragEnd
|
45 | // - keyUp
|
46 | // - keyDown
|
47 | // so we can use any here
|
48 | // @link https://github.com/facebook/react/blob/b87aabdfe1b7461e7331abb3601d9e6bb27544bc/packages/react-dom/src/events/SelectEventPlugin.js#L203-L224
|
49 |
|
50 | fireEvent.keyUp(node, init);
|
51 | }; |
\ | No newline at end of file |