mirror of
https://github.com/facebook/react.git
synced 2026-02-27 03:07:57 +00:00
50 lines
1.4 KiB
JavaScript
50 lines
1.4 KiB
JavaScript
/**
|
|
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
*
|
|
* This source code is licensed under the MIT license found in the
|
|
* LICENSE file in the root directory of this source tree.
|
|
*
|
|
* @flow
|
|
*/
|
|
|
|
describe('Bridge', () => {
|
|
let Bridge;
|
|
|
|
beforeEach(() => {
|
|
Bridge = require('react-devtools-shared/src/bridge').default;
|
|
});
|
|
|
|
it('should shutdown properly', () => {
|
|
const wall = {
|
|
listen: jest.fn(() => () => {}),
|
|
send: jest.fn(),
|
|
};
|
|
const bridge = new Bridge(wall);
|
|
|
|
// Check that we're wired up correctly.
|
|
bridge.send('reloadAppForProfiling');
|
|
jest.runAllTimers();
|
|
expect(wall.send).toHaveBeenCalledWith('reloadAppForProfiling');
|
|
|
|
// Should flush pending messages and then shut down.
|
|
wall.send.mockClear();
|
|
bridge.send('update', '1');
|
|
bridge.send('update', '2');
|
|
bridge.shutdown();
|
|
jest.runAllTimers();
|
|
expect(wall.send).toHaveBeenCalledWith('update', '1');
|
|
expect(wall.send).toHaveBeenCalledWith('update', '2');
|
|
expect(wall.send).toHaveBeenCalledWith('shutdown');
|
|
|
|
// Verify that the Bridge doesn't send messages after shutdown.
|
|
spyOn(console, 'warn');
|
|
wall.send.mockClear();
|
|
bridge.send('should not send');
|
|
jest.runAllTimers();
|
|
expect(wall.send).not.toHaveBeenCalled();
|
|
expect(console.warn).toHaveBeenCalledWith(
|
|
'Cannot send message "should not send" through a Bridge that has been shutdown.',
|
|
);
|
|
});
|
|
});
|