@samitouri / QOS-React-2 / commits / 9449f8bf39

[react-events] Fix keyboard responder test (#16368)

Nicolas Gallagher committed Aug 12, 2019 at 13:51 UTC 9449f8bf391512e258c822e80752f2b6c8db26a0
1 file changed +18 -40
packages/react-events/src/dom/__tests__/Keyboard-test.internal.js
+18 -40
@@ -14,29 +14,22 @@ let ReactFeatureFlags;
14 let ReactDOM;
15 let useKeyboardResponder;
16
17 -const createEvent = (type, data) => {
18 - const event = document.createEvent('CustomEvent');
19 - event.initCustomEvent(type, true, true);
20 - if (data != null) {
21 - Object.entries(data).forEach(([key, value]) => {
22 - event[key] = value;
23 - });
24 - }
25 - return event;
26 -};
17 +import {keydown, keyup} from '../test-utils';
18 +
19 +function initializeModules(hasPointerEvents) {
20 + jest.resetModules();
21 + ReactFeatureFlags = require('shared/ReactFeatureFlags');
22 + ReactFeatureFlags.enableFlareAPI = true;
23 + React = require('react');
24 + ReactDOM = require('react-dom');
25 + useKeyboardResponder = require('react-events/keyboard').useKeyboardResponder;
26 +}
27
28 describe('Keyboard event responder', () => {
29 let container;
30
31 beforeEach(() => {
32 - jest.resetModules();
33 - ReactFeatureFlags = require('shared/ReactFeatureFlags');
34 - ReactFeatureFlags.enableFlareAPI = true;
35 - React = require('react');
36 - ReactDOM = require('react-dom');
37 - useKeyboardResponder = require('react-events/keyboard')
38 - .useKeyboardResponder;
39 -
32 + initializeModules();
33 container = document.createElement('div');
34 document.body.appendChild(container);
35 });
@@ -66,7 +59,9 @@ describe('Keyboard event responder', () => {
59 });
60
61 it('prevents custom events being dispatched', () => {
69 - ref.current.dispatchEvent(createEvent('scroll'));
62 + const target = ref.current;
63 + target.dispatchEvent(keydown());
64 + target.dispatchEvent(keyup());
65 expect(onKeyDown).not.toBeCalled();
66 expect(onKeyUp).not.toBeCalled();
67 });
@@ -88,13 +83,7 @@ describe('Keyboard event responder', () => {
83 });
84
85 it('is called after "keydown" event', () => {
91 - ref.current.dispatchEvent(
92 - new KeyboardEvent('keydown', {
93 - bubbles: true,
94 - cancelable: true,
95 - key: 'Q',
96 - }),
97 - );
86 + ref.current.dispatchEvent(keydown({key: 'Q'}));
87 expect(onKeyDown).toHaveBeenCalledTimes(1);
88 expect(onKeyDown).toHaveBeenCalledWith(
89 expect.objectContaining({key: 'Q', type: 'keydown'}),
@@ -120,20 +109,9 @@ describe('Keyboard event responder', () => {
109 });
110
111 it('is called after "keydown" event', () => {
123 - ref.current.dispatchEvent(
124 - new KeyboardEvent('keydown', {
125 - bubbles: true,
126 - cancelable: true,
127 - key: 'Q',
128 - }),
129 - );
130 - ref.current.dispatchEvent(
131 - new KeyboardEvent('keyup', {
132 - bubbles: true,
133 - cancelable: true,
134 - key: 'Q',
135 - }),
136 - );
112 + const target = ref.current;
113 + target.dispatchEvent(keydown({key: 'Q'}));
114 + target.dispatchEvent(keyup({key: 'Q'}));
115 expect(onKeyDown).toHaveBeenCalledTimes(1);
116 expect(onKeyDown).toHaveBeenCalledWith(
117 expect.objectContaining({key: 'Q', type: 'keydown'}),