Skip to content

Commit 9449f8b

Browse files
authored
[react-events] Fix keyboard responder test (#16368)
1 parent 107521a commit 9449f8b

File tree

1 file changed

+18
-40
lines changed

1 file changed

+18
-40
lines changed

packages/react-events/src/dom/__tests__/Keyboard-test.internal.js

Lines changed: 18 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -14,29 +14,22 @@ let ReactFeatureFlags;
1414
let ReactDOM;
1515
let useKeyboardResponder;
1616

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+
}
2727

2828
describe('Keyboard event responder', () => {
2929
let container;
3030

3131
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();
4033
container = document.createElement('div');
4134
document.body.appendChild(container);
4235
});
@@ -66,7 +59,9 @@ describe('Keyboard event responder', () => {
6659
});
6760

6861
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());
7065
expect(onKeyDown).not.toBeCalled();
7166
expect(onKeyUp).not.toBeCalled();
7267
});
@@ -88,13 +83,7 @@ describe('Keyboard event responder', () => {
8883
});
8984

9085
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'}));
9887
expect(onKeyDown).toHaveBeenCalledTimes(1);
9988
expect(onKeyDown).toHaveBeenCalledWith(
10089
expect.objectContaining({key: 'Q', type: 'keydown'}),
@@ -120,20 +109,9 @@ describe('Keyboard event responder', () => {
120109
});
121110

122111
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'}));
137115
expect(onKeyDown).toHaveBeenCalledTimes(1);
138116
expect(onKeyDown).toHaveBeenCalledWith(
139117
expect.objectContaining({key: 'Q', type: 'keydown'}),

0 commit comments

Comments
 (0)