UNPKG

@johnf/react-native-owl

Version:
54 lines (51 loc) 2.29 kB
"use strict"; var _websocket = require("./websocket.js"); var _logger = require("./logger.js"); var _waitFor = require("./utils/wait-for.js"); describe('websocket.ts', () => { let wsServer; let wsClient1; let wsClient2; const serverLogger = new _logger.Logger(); const client1Logger = new _logger.Logger(); const client2Logger = new _logger.Logger(); const mockServerLoggerInfo = jest.spyOn(serverLogger, 'info'); const mockClient1LoggerInfo = jest.spyOn(client1Logger, 'info'); const mockClient2LoggerInfo = jest.spyOn(client2Logger, 'info'); const mockOnMessage = jest.fn(() => {}); beforeEach(async () => { mockServerLoggerInfo.mockReset(); mockClient1LoggerInfo.mockReset(); mockClient2LoggerInfo.mockReset(); mockOnMessage.mockReset(); wsServer = await (0, _websocket.startWebSocketServer)(serverLogger); wsClient1 = await (0, _websocket.createWebSocketClient)(client1Logger, mockOnMessage); wsClient2 = await (0, _websocket.createWebSocketClient)(client2Logger, mockOnMessage); }); afterEach(() => { wsServer.close(); wsClient1.close(); wsClient2.close(); }); it('should start the server and accept client connections', async () => { await (0, _waitFor.waitFor)(5); expect(mockServerLoggerInfo).toHaveBeenNthCalledWith(1, '[OWL - WebSocket] Listening on port 8123.'); }); it('should forward messages to other clients', async () => { await wsClient1.send('Hello!'); await (0, _waitFor.waitFor)(5); // We are just checking that client1 did not receive the message, // and that client2 did. // We are not concerned with the order of the logger calls. expect(mockClient1LoggerInfo.mock.calls.some(call => call[0] === '[OWL - WebSocket] The client received a message: Hello!.')).toBeFalsy(); expect(mockClient2LoggerInfo.mock.calls.some(call => call[0] === '[OWL - WebSocket] The client received a message: Hello!.')).toBeTruthy(); }); it('should use the onMessage handler', async () => { await wsClient1.send('Hello!'); await (0, _waitFor.waitFor)(5); // Check that the onMessage callback was used expect(mockOnMessage).toHaveBeenCalledTimes(1); expect(mockOnMessage).toHaveBeenCalledWith('Hello!'); }); }); //# sourceMappingURL=websocket.test.js.map