Added a sanity test for Bridge shutdown
Brian Vaughn committed
May 23, 2019 at 11:22 UTC
34f6fa4fab502497b6ffd5d04cf0547bb9569fc2
1 file changed
+42
src/__tests__/bridge-test.js
new
+42
@@ -0,0 +1,42 @@
1
+// @flow
2
+
3
+describe('Bridge', () => {
4
+ let Bridge;
5
+
6
+ beforeEach(() => {
7
+ Bridge = require('src/bridge').default;
8
+ });
9
+
10
+ it('should shutdown properly', () => {
11
+ const wall = {
12
+ listen: jest.fn(() => () => {}),
13
+ send: jest.fn(),
14
+ };
15
+ const bridge = new Bridge(wall);
16
+
17
+ // Check that we're wired up correctly.
18
+ bridge.send('init');
19
+ jest.runAllTimers();
20
+ expect(wall.send).toHaveBeenCalledWith('init', undefined, undefined);
21
+
22
+ // Should flush pending messages and then shut down.
23
+ wall.send.mockClear();
24
+ bridge.send('update', '1');
25
+ bridge.send('update', '2');
26
+ bridge.shutdown();
27
+ jest.runAllTimers();
28
+ expect(wall.send).toHaveBeenCalledWith('update', '1', undefined);
29
+ expect(wall.send).toHaveBeenCalledWith('update', '2', undefined);
30
+ expect(wall.send).toHaveBeenCalledWith('shutdown', undefined, undefined);
31
+
32
+ // Verify that the Bridge doesn't send messages after shutdown.
33
+ spyOn(console, 'warn');
34
+ wall.send.mockClear();
35
+ bridge.send('should not send');
36
+ jest.runAllTimers();
37
+ expect(wall.send).not.toHaveBeenCalled();
38
+ expect(console.warn).toHaveBeenCalledWith(
39
+ 'Cannot send message "should not send" through a Bridge that has been shutdown.'
40
+ );
41
+ });
42
+});