mirror of https://github.com/status-im/metro.git
Add `close` event to MetroClient
Reviewed By: rafeca Differential Revision: D7083989 fbshipit-source-id: 7a4d4913d32e58a1efc6210dd7118b03b6ad6b2b
This commit is contained in:
parent
063a6867b1
commit
f179352292
|
@ -35,6 +35,9 @@ class MetroClient extends EventEmitter {
|
||||||
this._ws.onerror = error => {
|
this._ws.onerror = error => {
|
||||||
this.emit('connection-error', error);
|
this.emit('connection-error', error);
|
||||||
};
|
};
|
||||||
|
this._ws.onclose = () => {
|
||||||
|
this.emit('close');
|
||||||
|
};
|
||||||
this._ws.onmessage = message => {
|
this._ws.onmessage = message => {
|
||||||
const data = JSON.parse(message.data);
|
const data = JSON.parse(message.data);
|
||||||
switch (data.type) {
|
switch (data.type) {
|
||||||
|
|
|
@ -17,7 +17,12 @@ global.WebSocket = jest.fn(() => {
|
||||||
mockSocket = {
|
mockSocket = {
|
||||||
onerror: jest.fn(),
|
onerror: jest.fn(),
|
||||||
onmessage: jest.fn(),
|
onmessage: jest.fn(),
|
||||||
close: jest.fn(),
|
onclose: jest.fn(),
|
||||||
|
close: jest.fn(() => {
|
||||||
|
if (mockSocket) {
|
||||||
|
mockSocket.onclose();
|
||||||
|
}
|
||||||
|
}),
|
||||||
mockEmit: (type, data) => {
|
mockEmit: (type, data) => {
|
||||||
if (mockSocket) {
|
if (mockSocket) {
|
||||||
if (type === 'error') {
|
if (type === 'error') {
|
||||||
|
@ -41,10 +46,12 @@ test('connects to a WebSocket and listens to messages', () => {
|
||||||
};
|
};
|
||||||
const mockErrorCallback = jest.fn(data => expect(data).toEqual(mockError));
|
const mockErrorCallback = jest.fn(data => expect(data).toEqual(mockError));
|
||||||
const mockUpdateStartCallback = jest.fn();
|
const mockUpdateStartCallback = jest.fn();
|
||||||
|
const mockCloseCallback = jest.fn();
|
||||||
|
|
||||||
expect(mockSocket).toBeNull();
|
expect(mockSocket).toBeNull();
|
||||||
client.on('connection-error', mockErrorCallback);
|
client.on('connection-error', mockErrorCallback);
|
||||||
client.on('update-start', mockUpdateStartCallback);
|
client.on('update-start', mockUpdateStartCallback);
|
||||||
|
client.on('close', mockCloseCallback);
|
||||||
client.enable();
|
client.enable();
|
||||||
if (!mockSocket) {
|
if (!mockSocket) {
|
||||||
throw new Error('mockSocket was not set when opening the connection.');
|
throw new Error('mockSocket was not set when opening the connection.');
|
||||||
|
@ -64,4 +71,5 @@ test('connects to a WebSocket and listens to messages', () => {
|
||||||
expect(mockSocket.close).not.toBeCalled();
|
expect(mockSocket.close).not.toBeCalled();
|
||||||
client.disable();
|
client.disable();
|
||||||
expect(mockSocket.close).toBeCalled();
|
expect(mockSocket.close).toBeCalled();
|
||||||
|
expect(mockCloseCallback).toBeCalled();
|
||||||
});
|
});
|
||||||
|
|
Loading…
Reference in New Issue