@johnf/react-native-owl
Version:
Visual regression testing for React Native
54 lines (51 loc) • 2.29 kB
JavaScript
;
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