Skip to content

Commit 5707eeb

Browse files
authored
Run ReactBrowserEventEmitter test on bundles (#19225)
* Run ReactBrowserEventEmitter test on bundles * Rm bad tests
1 parent b2bac73 commit 5707eeb

4 files changed

Lines changed: 4 additions & 211 deletions

File tree

packages/legacy-events/__tests__/accumulate-test.internal.js

Lines changed: 0 additions & 49 deletions
This file was deleted.

packages/legacy-events/__tests__/accumulateInto-test.internal.js

Lines changed: 0 additions & 49 deletions
This file was deleted.

packages/react-dom/src/__tests__/ReactBrowserEventEmitter-test.internal.js renamed to packages/react-dom/src/__tests__/ReactBrowserEventEmitter-test.js

Lines changed: 2 additions & 113 deletions
Original file line numberDiff line numberDiff line change
@@ -9,15 +9,9 @@
99

1010
'use strict';
1111

12-
let EventPluginGetListener;
13-
let EventPluginRegistry;
1412
let React;
1513
let ReactDOM;
16-
let ReactDOMComponentTree;
17-
let listenToEvent;
18-
let ReactDOMEventListener;
1914
let ReactTestUtils;
20-
let ReactFeatureFlags;
2115

2216
let idCallOrder;
2317
const recordID = function(id) {
@@ -33,50 +27,27 @@ const recordIDAndReturnFalse = function(id, event) {
3327
};
3428
const LISTENER = jest.fn();
3529
const ON_CLICK_KEY = 'onClick';
36-
const ON_CHANGE_KEY = 'onChange';
3730
const ON_MOUSE_ENTER_KEY = 'onMouseEnter';
3831

3932
let GRANDPARENT;
4033
let PARENT;
4134
let CHILD;
4235
let BUTTON;
4336

44-
let getListener;
4537
let putListener;
4638
let deleteAllListeners;
4739

4840
let container;
4941

50-
function registerSimpleTestHandler() {
51-
putListener(CHILD, ON_CLICK_KEY, LISTENER);
52-
const listener = getListener(CHILD, ON_CLICK_KEY);
53-
expect(listener).toEqual(LISTENER);
54-
return getListener(CHILD, ON_CLICK_KEY);
55-
}
56-
57-
// We should probably remove this file at some point, it's just full of
58-
// internal API usage.
42+
// This test is written in a bizarre way because it was previously using internals.
43+
// It should probably be rewritten but we're keeping it for some extra coverage.
5944
describe('ReactBrowserEventEmitter', () => {
6045
beforeEach(() => {
6146
jest.resetModules();
6247
LISTENER.mockClear();
6348

64-
ReactFeatureFlags = require('shared/ReactFeatureFlags');
65-
EventPluginGetListener = require('react-dom/src/events/getListener')
66-
.default;
67-
EventPluginRegistry = require('legacy-events/EventPluginRegistry');
6849
React = require('react');
6950
ReactDOM = require('react-dom');
70-
ReactDOMComponentTree = require('../client/ReactDOMComponentTree');
71-
if (ReactFeatureFlags.enableModernEventSystem) {
72-
listenToEvent = require('../events/DOMModernPluginEventSystem')
73-
.listenToEvent;
74-
} else {
75-
listenToEvent = require('../events/DOMLegacyEventPluginSystem')
76-
.legacyListenToEvent;
77-
}
78-
79-
ReactDOMEventListener = require('../events/ReactDOMEventListener');
8051
ReactTestUtils = require('react-dom/test-utils');
8152

8253
container = document.createElement('div');
@@ -111,10 +82,6 @@ describe('ReactBrowserEventEmitter', () => {
11182

11283
renderTree();
11384

114-
getListener = function(node, eventName) {
115-
const inst = ReactDOMComponentTree.getInstanceFromNode(node);
116-
return EventPluginGetListener(inst, eventName);
117-
};
11885
putListener = function(node, eventName, listener) {
11986
switch (node) {
12087
case CHILD:
@@ -159,47 +126,6 @@ describe('ReactBrowserEventEmitter', () => {
159126
container = null;
160127
});
161128

162-
it('should store a listener correctly', () => {
163-
registerSimpleTestHandler();
164-
const listener = getListener(CHILD, ON_CLICK_KEY);
165-
expect(listener).toBe(LISTENER);
166-
});
167-
168-
it('should retrieve a listener correctly', () => {
169-
registerSimpleTestHandler();
170-
const listener = getListener(CHILD, ON_CLICK_KEY);
171-
expect(listener).toEqual(LISTENER);
172-
});
173-
174-
it('should not retrieve listeners on a disabled interactive element', () => {
175-
putListener(BUTTON, ON_MOUSE_ENTER_KEY, recordID.bind(null, BUTTON));
176-
const listener = getListener(BUTTON, ON_MOUSE_ENTER_KEY);
177-
expect(listener).toBe(null);
178-
});
179-
180-
it('should clear all handlers when asked to', () => {
181-
registerSimpleTestHandler();
182-
deleteAllListeners(CHILD);
183-
const listener = getListener(CHILD, ON_CLICK_KEY);
184-
expect(listener).toBe(undefined);
185-
});
186-
187-
it('should invoke a simple handler registered on a node', () => {
188-
registerSimpleTestHandler();
189-
CHILD.click();
190-
expect(LISTENER).toHaveBeenCalledTimes(1);
191-
});
192-
193-
it('should not invoke handlers if ReactDOMEventListener is disabled', () => {
194-
registerSimpleTestHandler();
195-
ReactDOMEventListener.setEnabled(false);
196-
CHILD.click();
197-
expect(LISTENER).toHaveBeenCalledTimes(0);
198-
ReactDOMEventListener.setEnabled(true);
199-
CHILD.click();
200-
expect(LISTENER).toHaveBeenCalledTimes(1);
201-
});
202-
203129
it('should bubble simply', () => {
204130
putListener(CHILD, ON_CLICK_KEY, recordID.bind(null, CHILD));
205131
putListener(PARENT, ON_CLICK_KEY, recordID.bind(null, PARENT));
@@ -356,41 +282,4 @@ describe('ReactBrowserEventEmitter', () => {
356282
expect(idCallOrder.length).toBe(1);
357283
expect(idCallOrder[0]).toBe(CHILD);
358284
});
359-
360-
it('should listen to events only once', () => {
361-
spyOnDevAndProd(EventTarget.prototype, 'addEventListener');
362-
listenToEvent(ON_CLICK_KEY, document);
363-
listenToEvent(ON_CLICK_KEY, document);
364-
expect(EventTarget.prototype.addEventListener).toHaveBeenCalledTimes(1);
365-
});
366-
367-
it('should work with event plugins without dependencies', () => {
368-
spyOnDevAndProd(EventTarget.prototype, 'addEventListener');
369-
370-
listenToEvent(ON_CLICK_KEY, document);
371-
372-
expect(EventTarget.prototype.addEventListener.calls.argsFor(0)[0]).toBe(
373-
'click',
374-
);
375-
});
376-
377-
it('should work with event plugins with dependencies', () => {
378-
spyOnDevAndProd(EventTarget.prototype, 'addEventListener');
379-
380-
listenToEvent(ON_CHANGE_KEY, document);
381-
382-
const setEventListeners = [];
383-
const listenCalls = EventTarget.prototype.addEventListener.calls.allArgs();
384-
for (let i = 0; i < listenCalls.length; i++) {
385-
setEventListeners.push(listenCalls[i][1]);
386-
}
387-
388-
const module = EventPluginRegistry.registrationNameModules[ON_CHANGE_KEY];
389-
const dependencies = module.eventTypes.change.dependencies;
390-
expect(setEventListeners.length).toEqual(dependencies.length);
391-
392-
for (let i = 0; i < setEventListeners.length; i++) {
393-
expect(dependencies.indexOf(setEventListeners[i])).toBeTruthy();
394-
}
395-
});
396285
});

packages/react-dom/src/events/ReactDOMEventListener.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,8 @@ const {
6767
// TODO: can we stop exporting these?
6868
export let _enabled = true;
6969

70+
// This is exported in FB builds for use by legacy FB layer infra.
71+
// We'd like to remove this but it's not clear if this is safe.
7072
export function setEnabled(enabled: ?boolean) {
7173
_enabled = !!enabled;
7274
}

0 commit comments

Comments
 (0)