diff --git a/packages/react-devtools-shared/src/__tests__/bridge-test.js b/packages/react-devtools-shared/src/__tests__/bridge-test.js index d38c0fe66a8b9..fe265e326c982 100644 --- a/packages/react-devtools-shared/src/__tests__/bridge-test.js +++ b/packages/react-devtools-shared/src/__tests__/bridge-test.js @@ -21,6 +21,8 @@ describe('Bridge', () => { send: jest.fn(), }; const bridge = new Bridge(wall); + const shutdownCallback = jest.fn(); + bridge.addListener('shutdown', shutdownCallback); // Check that we're wired up correctly. bridge.send('reloadAppForProfiling'); @@ -36,6 +38,7 @@ describe('Bridge', () => { expect(wall.send).toHaveBeenCalledWith('update', '1'); expect(wall.send).toHaveBeenCalledWith('update', '2'); expect(wall.send).toHaveBeenCalledWith('shutdown'); + expect(shutdownCallback).toHaveBeenCalledTimes(1); // Verify that the Bridge doesn't send messages after shutdown. jest.spyOn(console, 'warn').mockImplementation(() => {}); diff --git a/packages/react-devtools-shared/src/bridge.js b/packages/react-devtools-shared/src/bridge.js index c0c0eab9d6149..f4576e65096c6 100644 --- a/packages/react-devtools-shared/src/bridge.js +++ b/packages/react-devtools-shared/src/bridge.js @@ -334,6 +334,7 @@ class Bridge< } // Queue the shutdown outgoing message for subscribers. + this.emit('shutdown'); this.send('shutdown'); // Mark this bridge as destroyed, i.e. disable its public API.