airdcpp-apisocket 3.0.0-beta.11 → 3.0.0-beta.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist-es/SocketBase.js +22 -0
- package/dist-es/SocketBase.js.map +1 -1
- package/dist-es/tests/mocks/mock-server.d.ts +5 -1
- package/dist-es/tests/mocks/mock-server.js +34 -10
- package/dist-es/tests/mocks/mock-server.js.map +1 -1
- package/dist-es/types/socket.d.ts +4 -0
- package/package.json +1 -1
- package/src/SocketBase.ts +29 -0
- package/src/tests/Socket.test.ts +5 -4
- package/src/tests/mocks/mock-server.ts +43 -12
- package/src/types/socket.ts +6 -0
package/dist-es/SocketBase.js
CHANGED
@@ -20,8 +20,10 @@ const ApiSocket = (userOptions, WebSocketImpl) => {
|
|
20
20
|
let socket = null;
|
21
21
|
let reconnectTimer;
|
22
22
|
let forceNoAutoConnect = true;
|
23
|
+
let connectCallback = null;
|
23
24
|
let connectedCallback = null;
|
24
25
|
let sessionResetCallback = null;
|
26
|
+
let disconnectCallback = null;
|
25
27
|
let disconnectedCallback = null;
|
26
28
|
const logger = SocketLogger(options);
|
27
29
|
const subscriptions = SocketSubscriptionHandler(() => socket, logger, options);
|
@@ -192,6 +194,9 @@ const ApiSocket = (userOptions, WebSocketImpl) => {
|
|
192
194
|
// Authentication handler should send the actual authentication request
|
193
195
|
const startConnect = (authenticationHandler, reconnectOnFailure) => {
|
194
196
|
forceNoAutoConnect = false;
|
197
|
+
if (connectCallback) {
|
198
|
+
connectCallback();
|
199
|
+
}
|
195
200
|
return new Promise((resolve, reject) => {
|
196
201
|
logger.info(`Starting socket connect to ${userOptions.url}`);
|
197
202
|
connectInternal(resolve, reject, authenticationHandler, reconnectOnFailure);
|
@@ -253,6 +258,9 @@ const ApiSocket = (userOptions, WebSocketImpl) => {
|
|
253
258
|
}
|
254
259
|
return;
|
255
260
|
}
|
261
|
+
if (disconnectCallback) {
|
262
|
+
disconnectCallback(reason);
|
263
|
+
}
|
256
264
|
logger.info('Disconnecting socket');
|
257
265
|
if (!autoConnect) {
|
258
266
|
disableReconnect();
|
@@ -313,6 +321,10 @@ const ApiSocket = (userOptions, WebSocketImpl) => {
|
|
313
321
|
isActive,
|
314
322
|
logger,
|
315
323
|
waitDisconnected,
|
324
|
+
// Function to call each time a connect attempt is initiated
|
325
|
+
set onConnect(handler) {
|
326
|
+
connectCallback = handler;
|
327
|
+
},
|
316
328
|
// Function to call each time the socket has been connected (and authorized)
|
317
329
|
set onConnected(handler) {
|
318
330
|
connectedCallback = handler;
|
@@ -321,16 +333,26 @@ const ApiSocket = (userOptions, WebSocketImpl) => {
|
|
321
333
|
set onSessionReset(handler) {
|
322
334
|
sessionResetCallback = handler;
|
323
335
|
},
|
336
|
+
// Function to call each time the socket is being manually disconnected
|
337
|
+
set onDisconnect(handler) {
|
338
|
+
disconnectCallback = handler;
|
339
|
+
},
|
324
340
|
// Function to call each time the socket has been disconnected
|
325
341
|
set onDisconnected(handler) {
|
326
342
|
disconnectedCallback = handler;
|
327
343
|
},
|
344
|
+
get onConnect() {
|
345
|
+
return connectCallback;
|
346
|
+
},
|
328
347
|
get onConnected() {
|
329
348
|
return connectedCallback;
|
330
349
|
},
|
331
350
|
get onSessionReset() {
|
332
351
|
return sessionResetCallback;
|
333
352
|
},
|
353
|
+
get onDisconnect() {
|
354
|
+
return disconnectCallback;
|
355
|
+
},
|
334
356
|
get onDisconnected() {
|
335
357
|
return disconnectedCallback;
|
336
358
|
},
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"SocketBase.js","sourceRoot":"","sources":["../src/SocketBase.ts"],"names":[],"mappings":"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"}
|
1
|
+
{"version":3,"file":"SocketBase.js","sourceRoot":"","sources":["../src/SocketBase.ts"],"names":[],"mappings":"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"}
|
@@ -1,14 +1,18 @@
|
|
1
1
|
import { WebSocket } from 'mock-socket';
|
2
2
|
import { OutgoingRequest, RequestSuccessResponse, RequestErrorResponse } from '../../types/api_internal.js';
|
3
3
|
import { EventEmitter } from 'events';
|
4
|
+
import { LoggerOptions } from '../../NodeSocket.js';
|
4
5
|
interface MockFunctionCreator {
|
5
6
|
fn: (...args: any[]) => any;
|
6
7
|
}
|
7
8
|
type RequestCallback = (requestData: object) => void;
|
8
|
-
|
9
|
+
type DelayF = () => number;
|
10
|
+
export interface MockServerOptions {
|
9
11
|
url: string;
|
10
12
|
reportMissingListeners?: boolean;
|
11
13
|
mockF: MockFunctionCreator;
|
14
|
+
delayMs: number | DelayF;
|
15
|
+
loggerOptions: LoggerOptions;
|
12
16
|
}
|
13
17
|
type MockRequestResponseDataObject<DataT extends object | undefined> = Omit<RequestSuccessResponse<DataT>, 'callback_id'> | Omit<RequestErrorResponse, 'callback_id'>;
|
14
18
|
type MockRequestResponseDataHandler<DataT extends object | undefined> = (request: OutgoingRequest, s: WebSocket) => MockRequestResponseDataObject<DataT>;
|
@@ -1,6 +1,7 @@
|
|
1
1
|
import { Server } from 'mock-socket';
|
2
2
|
import { EventEmitter } from 'events';
|
3
3
|
import { MOCK_SERVER_URL } from './mock-data.js';
|
4
|
+
import Logger from '../../SocketLogger.js';
|
4
5
|
;
|
5
6
|
const toEmitId = (path, method) => {
|
6
7
|
return `${path}_${method}`;
|
@@ -12,12 +13,18 @@ const DEFAULT_MOCK_SERVER_OPTIONS = {
|
|
12
13
|
url: MOCK_SERVER_URL,
|
13
14
|
reportMissingListeners: true,
|
14
15
|
mockF: getDefaultMockCreatorF(),
|
16
|
+
delayMs: 0,
|
17
|
+
loggerOptions: {
|
18
|
+
logLevel: 'warn',
|
19
|
+
logOutput: console,
|
20
|
+
}
|
15
21
|
};
|
16
22
|
const getMockServer = (initialOptions = {}) => {
|
17
|
-
const { url, reportMissingListeners, mockF } = {
|
23
|
+
const { url, reportMissingListeners, mockF, delayMs, loggerOptions } = {
|
18
24
|
...DEFAULT_MOCK_SERVER_OPTIONS,
|
19
25
|
...initialOptions,
|
20
26
|
};
|
27
|
+
const logger = Logger(loggerOptions);
|
21
28
|
const mockServer = new Server(url);
|
22
29
|
let socket;
|
23
30
|
const emitter = new EventEmitter();
|
@@ -28,9 +35,6 @@ const getMockServer = (initialOptions = {}) => {
|
|
28
35
|
const handlers = new Map();
|
29
36
|
const addServerHandler = (method, path, responseData, subscriptionCallback) => {
|
30
37
|
const requestHandler = (request, s) => {
|
31
|
-
if (subscriptionCallback) {
|
32
|
-
subscriptionCallback(request);
|
33
|
-
}
|
34
38
|
const data = typeof responseData === 'function' ? responseData(request, s) : responseData;
|
35
39
|
if (!data || !data.code) {
|
36
40
|
throw new Error(`Mock server: response handler for path ${path} must return a status code`);
|
@@ -39,7 +43,14 @@ const getMockServer = (initialOptions = {}) => {
|
|
39
43
|
callback_id: request.callback_id,
|
40
44
|
...data,
|
41
45
|
};
|
42
|
-
|
46
|
+
const delay = typeof delayMs === 'function' ? delayMs() : delayMs;
|
47
|
+
setTimeout(() => {
|
48
|
+
logger.verbose(`Mock server: sending response for request ${request.callback_id} (${method} ${path}):`, data);
|
49
|
+
if (subscriptionCallback) {
|
50
|
+
subscriptionCallback(request);
|
51
|
+
}
|
52
|
+
s.send(JSON.stringify(response));
|
53
|
+
}, delay);
|
43
54
|
};
|
44
55
|
// Don't add duplicates
|
45
56
|
const emitId = toEmitId(path, method);
|
@@ -86,6 +97,12 @@ const getMockServer = (initialOptions = {}) => {
|
|
86
97
|
const subscribeRemove = addRequestHandler('POST', path, undefined, subscribeFn);
|
87
98
|
const unsubscribeRemove = addRequestHandler('DELETE', path, undefined, unsubscribeFn);
|
88
99
|
const fire = (data, entityId) => {
|
100
|
+
if (entityId) {
|
101
|
+
logger.verbose(`Mock server: firing subscriber ${moduleName} ${listenerName} for entity ${entityId}:`, data);
|
102
|
+
}
|
103
|
+
else {
|
104
|
+
logger.verbose(`Mock server: firing subscriber ${moduleName} ${listenerName}:`, data);
|
105
|
+
}
|
89
106
|
send({
|
90
107
|
event: listenerName,
|
91
108
|
data,
|
@@ -119,6 +136,7 @@ const getMockServer = (initialOptions = {}) => {
|
|
119
136
|
rejectRemove();
|
120
137
|
};
|
121
138
|
const fire = (data) => {
|
139
|
+
logger.verbose(`Mock server: firing hook ${moduleName} ${listenerName}:`, data);
|
122
140
|
send({
|
123
141
|
event: listenerName,
|
124
142
|
data,
|
@@ -132,6 +150,10 @@ const getMockServer = (initialOptions = {}) => {
|
|
132
150
|
...subscriber,
|
133
151
|
};
|
134
152
|
};
|
153
|
+
const clearHandlers = () => {
|
154
|
+
emitter.removeAllListeners();
|
155
|
+
handlers.clear();
|
156
|
+
};
|
135
157
|
mockServer.on('connection', s => {
|
136
158
|
socket = s;
|
137
159
|
socket.on('message', (messageObj) => {
|
@@ -139,10 +161,15 @@ const getMockServer = (initialOptions = {}) => {
|
|
139
161
|
const emitId = toEmitId(request.path, request.method);
|
140
162
|
const processed = emitter.emit(emitId, request, s);
|
141
163
|
if (reportMissingListeners && !processed) {
|
142
|
-
|
164
|
+
logger.warn(`Mock server: no listeners for event ${request.method} ${request.path}`);
|
143
165
|
}
|
144
166
|
});
|
145
167
|
});
|
168
|
+
mockServer.on('close', () => {
|
169
|
+
// Remove handlers only after the socket was disconnected
|
170
|
+
// to allow it to complete all requests
|
171
|
+
clearHandlers();
|
172
|
+
});
|
146
173
|
return {
|
147
174
|
addRequestHandler,
|
148
175
|
addErrorHandler,
|
@@ -150,10 +177,7 @@ const getMockServer = (initialOptions = {}) => {
|
|
150
177
|
addHookHandler,
|
151
178
|
ignoreMissingHandler: addDummyDataHandler,
|
152
179
|
stop: () => {
|
153
|
-
mockServer.stop(
|
154
|
-
emitter.removeAllListeners();
|
155
|
-
handlers.clear();
|
156
|
-
});
|
180
|
+
mockServer.stop();
|
157
181
|
},
|
158
182
|
send,
|
159
183
|
url,
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"mock-server.js","sourceRoot":"","sources":["../../../src/tests/mocks/mock-server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,MAAM,EAAa,MAAM,aAAa,CAAC;AAGxD,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;
|
1
|
+
{"version":3,"file":"mock-server.js","sourceRoot":"","sources":["../../../src/tests/mocks/mock-server.ts"],"names":[],"mappings":"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"}
|
@@ -2,8 +2,10 @@ import { AuthTokenType, LogoutResponse, AuthenticationResponse } from './api.js'
|
|
2
2
|
import { Logger } from './logger.js';
|
3
3
|
import { SocketRequestMethods } from './requests.js';
|
4
4
|
import { SocketSubscriptions } from './subscriptions.js';
|
5
|
+
export type ConnectCallback = () => void;
|
5
6
|
export type ConnectedCallback = (data: AuthenticationResponse) => void;
|
6
7
|
export type SessionResetCallback = () => void;
|
8
|
+
export type DisconnectCallback = (reason: string) => void;
|
7
9
|
export type DisconnectedCallback = (reason: string, code: number, wasClean: boolean) => void;
|
8
10
|
export interface APISocket extends SocketRequestMethods, SocketSubscriptions {
|
9
11
|
connect: (username?: string, password?: string, reconnectOnFailure?: boolean) => Promise<AuthenticationResponse>;
|
@@ -16,8 +18,10 @@ export interface APISocket extends SocketRequestMethods, SocketSubscriptions {
|
|
16
18
|
isConnected: () => boolean;
|
17
19
|
isActive: () => boolean;
|
18
20
|
logger: Logger;
|
21
|
+
onConnect: ConnectCallback | null;
|
19
22
|
onConnected: ConnectedCallback | null;
|
20
23
|
onSessionReset: SessionResetCallback | null;
|
24
|
+
onDisconnect: DisconnectCallback | null;
|
21
25
|
onDisconnected: DisconnectedCallback | null;
|
22
26
|
readonly nativeSocket: WebSocket | null;
|
23
27
|
readonly url: string;
|
package/package.json
CHANGED
package/src/SocketBase.ts
CHANGED
@@ -43,8 +43,10 @@ const ApiSocket = (userOptions: Options.APISocketOptions, WebSocketImpl: WebSock
|
|
43
43
|
let reconnectTimer: any;
|
44
44
|
let forceNoAutoConnect = true;
|
45
45
|
|
46
|
+
let connectCallback: Socket.ConnectCallback | null = null;
|
46
47
|
let connectedCallback: Socket.ConnectedCallback | null = null;
|
47
48
|
let sessionResetCallback: Socket.SessionResetCallback | null = null;
|
49
|
+
let disconnectCallback: Socket.DisconnectCallback | null = null;
|
48
50
|
let disconnectedCallback: Socket.DisconnectedCallback | null = null;
|
49
51
|
|
50
52
|
const logger = SocketLogger(options);
|
@@ -279,6 +281,11 @@ const ApiSocket = (userOptions: Options.APISocketOptions, WebSocketImpl: WebSock
|
|
279
281
|
reconnectOnFailure: boolean
|
280
282
|
): Promise<API.AuthenticationResponse> => {
|
281
283
|
forceNoAutoConnect = false;
|
284
|
+
|
285
|
+
if (connectCallback) {
|
286
|
+
connectCallback();
|
287
|
+
}
|
288
|
+
|
282
289
|
return new Promise(
|
283
290
|
(resolve, reject) => {
|
284
291
|
logger.info(`Starting socket connect to ${userOptions.url}`);
|
@@ -348,6 +355,10 @@ const ApiSocket = (userOptions: Options.APISocketOptions, WebSocketImpl: WebSock
|
|
348
355
|
return;
|
349
356
|
}
|
350
357
|
|
358
|
+
if (disconnectCallback) {
|
359
|
+
disconnectCallback(reason);
|
360
|
+
}
|
361
|
+
|
351
362
|
logger.info('Disconnecting socket');
|
352
363
|
|
353
364
|
if (!autoConnect) {
|
@@ -427,6 +438,11 @@ const ApiSocket = (userOptions: Options.APISocketOptions, WebSocketImpl: WebSock
|
|
427
438
|
logger,
|
428
439
|
waitDisconnected,
|
429
440
|
|
441
|
+
// Function to call each time a connect attempt is initiated
|
442
|
+
set onConnect(handler: Socket.ConnectCallback) {
|
443
|
+
connectCallback = handler;
|
444
|
+
},
|
445
|
+
|
430
446
|
// Function to call each time the socket has been connected (and authorized)
|
431
447
|
set onConnected(handler: Socket.ConnectedCallback) {
|
432
448
|
connectedCallback = handler;
|
@@ -437,11 +453,20 @@ const ApiSocket = (userOptions: Options.APISocketOptions, WebSocketImpl: WebSock
|
|
437
453
|
sessionResetCallback = handler;
|
438
454
|
},
|
439
455
|
|
456
|
+
// Function to call each time the socket is being manually disconnected
|
457
|
+
set onDisconnect(handler: Socket.DisconnectCallback) {
|
458
|
+
disconnectCallback = handler;
|
459
|
+
},
|
460
|
+
|
440
461
|
// Function to call each time the socket has been disconnected
|
441
462
|
set onDisconnected(handler: Socket.DisconnectedCallback) {
|
442
463
|
disconnectedCallback = handler;
|
443
464
|
},
|
444
465
|
|
466
|
+
get onConnect() {
|
467
|
+
return connectCallback!;
|
468
|
+
},
|
469
|
+
|
445
470
|
get onConnected() {
|
446
471
|
return connectedCallback!;
|
447
472
|
},
|
@@ -450,6 +475,10 @@ const ApiSocket = (userOptions: Options.APISocketOptions, WebSocketImpl: WebSock
|
|
450
475
|
return sessionResetCallback!;
|
451
476
|
},
|
452
477
|
|
478
|
+
get onDisconnect() {
|
479
|
+
return disconnectCallback!;
|
480
|
+
},
|
481
|
+
|
453
482
|
get onDisconnected() {
|
454
483
|
return disconnectedCallback!;
|
455
484
|
},
|
package/src/tests/Socket.test.ts
CHANGED
@@ -248,6 +248,7 @@ describe('socket', () => {
|
|
248
248
|
jest.runOnlyPendingTimers();
|
249
249
|
jest.runOnlyPendingTimers();
|
250
250
|
jest.runOnlyPendingTimers();
|
251
|
+
jest.runOnlyPendingTimers();
|
251
252
|
|
252
253
|
expect(socket.isConnected()).toEqual(true);
|
253
254
|
expect(mockConsole.warn.mock.calls.length).toBe(0);
|
@@ -312,9 +313,7 @@ describe('socket', () => {
|
|
312
313
|
const connectErrorCallback = jest.fn();
|
313
314
|
|
314
315
|
// Connect and disconnect
|
315
|
-
const { socket } = await getConnectedMockSocket(
|
316
|
-
authCallback,
|
317
|
-
});
|
316
|
+
const { socket } = await getConnectedMockSocket();
|
318
317
|
|
319
318
|
jest.useFakeTimers();
|
320
319
|
socket.disconnect();
|
@@ -325,11 +324,13 @@ describe('socket', () => {
|
|
325
324
|
// and connect with credentials afterwards
|
326
325
|
server.addErrorHandler('POST', ApiConstants.CONNECT_URL, ErrorResponse, 400, connectErrorCallback);
|
327
326
|
|
327
|
+
server.addRequestHandler('POST', ApiConstants.LOGIN_URL, DEFAULT_AUTH_RESPONSE, authCallback);
|
328
|
+
|
328
329
|
jest.runOnlyPendingTimers();
|
329
330
|
socket.reconnect();
|
330
331
|
|
331
332
|
await jest.advanceTimersByTimeAsync(1000);
|
332
|
-
expect(authCallback.mock.calls.length).toBe(
|
333
|
+
expect(authCallback.mock.calls.length).toBe(1);
|
333
334
|
expect(connectErrorCallback.mock.calls.length).toBe(1);
|
334
335
|
|
335
336
|
expect(socket.isConnected()).toEqual(true);
|
@@ -4,6 +4,9 @@ import { OutgoingRequest, RequestSuccessResponse, RequestErrorResponse } from '.
|
|
4
4
|
import { EventEmitter } from 'events';
|
5
5
|
import { MOCK_SERVER_URL } from './mock-data.js';
|
6
6
|
|
7
|
+
import Logger from '../../SocketLogger.js';
|
8
|
+
import { LoggerOptions } from '../../NodeSocket.js';
|
9
|
+
|
7
10
|
interface MockFunctionCreator {
|
8
11
|
fn: (...args: any[]) => any;
|
9
12
|
};
|
@@ -18,16 +21,25 @@ const getDefaultMockCreatorF = () => ({
|
|
18
21
|
fn: () => {},
|
19
22
|
});
|
20
23
|
|
21
|
-
|
24
|
+
type DelayF = () => number;
|
25
|
+
|
26
|
+
export interface MockServerOptions {
|
22
27
|
url: string;
|
23
28
|
reportMissingListeners?: boolean;
|
24
29
|
mockF: MockFunctionCreator;
|
30
|
+
delayMs: number | DelayF;
|
31
|
+
loggerOptions: LoggerOptions;
|
25
32
|
}
|
26
33
|
|
27
34
|
const DEFAULT_MOCK_SERVER_OPTIONS: MockServerOptions = {
|
28
35
|
url: MOCK_SERVER_URL,
|
29
36
|
reportMissingListeners: true,
|
30
37
|
mockF: getDefaultMockCreatorF(),
|
38
|
+
delayMs: 0,
|
39
|
+
loggerOptions: {
|
40
|
+
logLevel: 'warn',
|
41
|
+
logOutput: console,
|
42
|
+
}
|
31
43
|
}
|
32
44
|
|
33
45
|
type MockRequestResponseDataObject<DataT extends object | undefined> = Omit<RequestSuccessResponse<DataT>, 'callback_id'> | Omit<RequestErrorResponse, 'callback_id'>;
|
@@ -35,11 +47,12 @@ type MockRequestResponseDataHandler<DataT extends object | undefined> = (request
|
|
35
47
|
type MockRequestResponseData<DataT extends object | undefined> = MockRequestResponseDataObject<DataT> | MockRequestResponseDataHandler<DataT>;
|
36
48
|
|
37
49
|
const getMockServer = (initialOptions: Partial<MockServerOptions> = {}) => {
|
38
|
-
const { url, reportMissingListeners, mockF }: MockServerOptions = {
|
50
|
+
const { url, reportMissingListeners, mockF, delayMs, loggerOptions }: MockServerOptions = {
|
39
51
|
...DEFAULT_MOCK_SERVER_OPTIONS,
|
40
52
|
...initialOptions,
|
41
53
|
};
|
42
54
|
|
55
|
+
const logger = Logger(loggerOptions);
|
43
56
|
const mockServer = new Server(url);
|
44
57
|
let socket: Client;
|
45
58
|
const emitter = new EventEmitter();
|
@@ -58,10 +71,6 @@ const getMockServer = (initialOptions: Partial<MockServerOptions> = {}) => {
|
|
58
71
|
subscriptionCallback?: RequestCallback,
|
59
72
|
) => {
|
60
73
|
const requestHandler = (request: OutgoingRequest, s: WebSocket) => {
|
61
|
-
if (subscriptionCallback) {
|
62
|
-
subscriptionCallback(request);
|
63
|
-
}
|
64
|
-
|
65
74
|
const data = typeof responseData === 'function' ? responseData(request, s) : responseData;
|
66
75
|
if (!data ||!data.code) {
|
67
76
|
throw new Error(`Mock server: response handler for path ${path} must return a status code`);
|
@@ -72,7 +81,15 @@ const getMockServer = (initialOptions: Partial<MockServerOptions> = {}) => {
|
|
72
81
|
...data,
|
73
82
|
};
|
74
83
|
|
75
|
-
|
84
|
+
const delay = typeof delayMs === 'function' ? delayMs() : delayMs;
|
85
|
+
setTimeout(() => {
|
86
|
+
logger.verbose(`Mock server: sending response for request ${request.callback_id} (${method} ${path}):`, data);
|
87
|
+
if (subscriptionCallback) {
|
88
|
+
subscriptionCallback(request);
|
89
|
+
}
|
90
|
+
|
91
|
+
s.send(JSON.stringify(response));
|
92
|
+
}, delay);
|
76
93
|
};
|
77
94
|
|
78
95
|
// Don't add duplicates
|
@@ -161,6 +178,12 @@ const getMockServer = (initialOptions: Partial<MockServerOptions> = {}) => {
|
|
161
178
|
const unsubscribeRemove = addRequestHandler('DELETE', path, undefined, unsubscribeFn);
|
162
179
|
|
163
180
|
const fire = (data: object, entityId?: string | number) => {
|
181
|
+
if (entityId) {
|
182
|
+
logger.verbose(`Mock server: firing subscriber ${moduleName} ${listenerName} for entity ${entityId}:`, data);
|
183
|
+
} else {
|
184
|
+
logger.verbose(`Mock server: firing subscriber ${moduleName} ${listenerName}:`, data);
|
185
|
+
}
|
186
|
+
|
164
187
|
send({
|
165
188
|
event: listenerName,
|
166
189
|
data,
|
@@ -223,6 +246,7 @@ const getMockServer = (initialOptions: Partial<MockServerOptions> = {}) => {
|
|
223
246
|
}
|
224
247
|
|
225
248
|
const fire = (data: object) => {
|
249
|
+
logger.verbose(`Mock server: firing hook ${moduleName} ${listenerName}:`, data);
|
226
250
|
send({
|
227
251
|
event: listenerName,
|
228
252
|
data,
|
@@ -240,6 +264,10 @@ const getMockServer = (initialOptions: Partial<MockServerOptions> = {}) => {
|
|
240
264
|
}
|
241
265
|
}
|
242
266
|
|
267
|
+
const clearHandlers = () => {
|
268
|
+
emitter.removeAllListeners();
|
269
|
+
handlers.clear();
|
270
|
+
}
|
243
271
|
|
244
272
|
mockServer.on('connection', s => {
|
245
273
|
socket = s;
|
@@ -249,11 +277,17 @@ const getMockServer = (initialOptions: Partial<MockServerOptions> = {}) => {
|
|
249
277
|
const emitId = toEmitId(request.path, request.method);
|
250
278
|
const processed = emitter.emit(emitId, request, s);
|
251
279
|
if (reportMissingListeners && !processed) {
|
252
|
-
|
280
|
+
logger.warn(`Mock server: no listeners for event ${request.method} ${request.path}`);
|
253
281
|
}
|
254
282
|
});
|
255
283
|
});
|
256
284
|
|
285
|
+
mockServer.on('close', () => {
|
286
|
+
// Remove handlers only after the socket was disconnected
|
287
|
+
// to allow it to complete all requests
|
288
|
+
clearHandlers();
|
289
|
+
});
|
290
|
+
|
257
291
|
return {
|
258
292
|
addRequestHandler,
|
259
293
|
addErrorHandler,
|
@@ -263,10 +297,7 @@ const getMockServer = (initialOptions: Partial<MockServerOptions> = {}) => {
|
|
263
297
|
|
264
298
|
ignoreMissingHandler: addDummyDataHandler,
|
265
299
|
stop: () => {
|
266
|
-
mockServer.stop(
|
267
|
-
emitter.removeAllListeners();
|
268
|
-
handlers.clear();
|
269
|
-
});
|
300
|
+
mockServer.stop();
|
270
301
|
},
|
271
302
|
send,
|
272
303
|
url,
|
package/src/types/socket.ts
CHANGED
@@ -4,8 +4,10 @@ import { SocketRequestMethods } from './requests.js';
|
|
4
4
|
import { SocketSubscriptions } from './subscriptions.js';
|
5
5
|
|
6
6
|
|
7
|
+
export type ConnectCallback = () => void;
|
7
8
|
export type ConnectedCallback = (data: AuthenticationResponse) => void;
|
8
9
|
export type SessionResetCallback = () => void;
|
10
|
+
export type DisconnectCallback = (reason: string) => void;
|
9
11
|
export type DisconnectedCallback = (reason: string, code: number, wasClean: boolean) => void;
|
10
12
|
|
11
13
|
export interface APISocket extends SocketRequestMethods, SocketSubscriptions {
|
@@ -22,9 +24,13 @@ export interface APISocket extends SocketRequestMethods, SocketSubscriptions {
|
|
22
24
|
|
23
25
|
logger: Logger;
|
24
26
|
|
27
|
+
onConnect: ConnectCallback | null;
|
25
28
|
onConnected: ConnectedCallback | null;
|
29
|
+
|
26
30
|
onSessionReset: SessionResetCallback | null;
|
31
|
+
onDisconnect: DisconnectCallback | null;
|
27
32
|
onDisconnected: DisconnectedCallback | null;
|
33
|
+
|
28
34
|
readonly nativeSocket: WebSocket | null;
|
29
35
|
readonly url: string;
|
30
36
|
}
|