airdcpp-apisocket 3.0.0-beta.1 → 3.0.0-beta.10

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.
Files changed (41) hide show
  1. package/dist-es/PublicHelpers.js +21 -4
  2. package/dist-es/PublicHelpers.js.map +1 -1
  3. package/dist-es/SocketBase.js +13 -11
  4. package/dist-es/SocketBase.js.map +1 -1
  5. package/dist-es/SocketRequestHandler.js +3 -5
  6. package/dist-es/SocketRequestHandler.js.map +1 -1
  7. package/dist-es/tests/mocks/index.d.ts +3 -0
  8. package/dist-es/tests/mocks/index.js +4 -0
  9. package/dist-es/tests/mocks/index.js.map +1 -0
  10. package/dist-es/tests/mocks/mock-data.d.ts +54 -0
  11. package/dist-es/tests/mocks/mock-data.js +34 -0
  12. package/dist-es/tests/mocks/mock-data.js.map +1 -0
  13. package/dist-es/tests/mocks/mock-server.d.ts +43 -0
  14. package/dist-es/tests/mocks/mock-server.js +154 -0
  15. package/dist-es/tests/mocks/mock-server.js.map +1 -0
  16. package/dist-es/tests/mocks/mock-socket.d.ts +23 -0
  17. package/dist-es/tests/mocks/mock-socket.js +31 -0
  18. package/dist-es/tests/mocks/mock-socket.js.map +1 -0
  19. package/dist-es/tests/test-utils.d.ts +8 -0
  20. package/dist-es/tests/test-utils.js +28 -0
  21. package/dist-es/tests/test-utils.js.map +1 -0
  22. package/dist-es/types/public_helpers.d.ts +12 -3
  23. package/dist-es/types/public_helpers_internal.d.ts +4 -4
  24. package/dist-es/types/socket.d.ts +1 -0
  25. package/package.json +10 -7
  26. package/src/PublicHelpers.ts +22 -4
  27. package/src/SocketBase.ts +15 -12
  28. package/src/SocketRequestHandler.ts +3 -5
  29. package/src/tests/Socket.test.ts +107 -109
  30. package/src/tests/mocks/index.ts +3 -0
  31. package/src/tests/mocks/mock-data.ts +36 -0
  32. package/src/tests/mocks/mock-server.ts +269 -0
  33. package/src/tests/mocks/mock-socket.ts +68 -0
  34. package/src/tests/public_helpers.test.ts +63 -62
  35. package/src/tests/test-utils.ts +31 -0
  36. package/src/types/api_internal.ts +0 -1
  37. package/src/types/public_helpers.ts +11 -11
  38. package/src/types/public_helpers_internal.ts +4 -4
  39. package/src/types/socket.ts +1 -0
  40. package/tsconfig.json +1 -1
  41. package/src/tests/helpers.ts +0 -195
@@ -1,7 +1,7 @@
1
1
  import {
2
- AUTH_RESPONSE, CONNECT_PARAMS,
3
- getConnectedSocket, getMockServer, getSocket, waitForExpect
4
- } from './helpers.js';
2
+ DEFAULT_AUTH_RESPONSE, DEFAULT_CONNECT_PARAMS,
3
+ getConnectedSocket as getOriginalConnectedSocket, getMockServer as getOriginalMockServer, getSocket as getOriginalSocket
4
+ } from './mocks';
5
5
 
6
6
  import ApiConstants from '../ApiConstants.js';
7
7
 
@@ -9,23 +9,23 @@ import { HookCallback, HookSubscriberInfo, SubscriptionRemoveHandler } from '../
9
9
  import { IncomingSubscriptionEvent } from '../types/api_internal.js';
10
10
 
11
11
  import { jest } from '@jest/globals';
12
-
13
- let server: ReturnType<typeof getMockServer>;
12
+ import { defusedPromise, getMockConsole, waitForExpect } from './test-utils.js';
14
13
 
15
14
  const dummyfn = () => {
16
15
  // ..
17
16
  };
18
17
 
19
- const useFakeTimers = () => {
20
- // Mocking performance would cause an error with Node 19, can be removed when using
21
- // the latest version of Jest
22
- jest.useFakeTimers({doNotFake: ['performance']});
23
- };
24
18
 
25
19
  // tslint:disable:no-empty
26
20
  describe('socket', () => {
21
+ let server: ReturnType<typeof getOriginalMockServer>;
22
+ let mockConsole: ReturnType<typeof getMockConsole>;
23
+
27
24
  beforeEach(() => {
28
- server = getMockServer();
25
+ mockConsole = getMockConsole();
26
+ server = getOriginalMockServer({
27
+ mockF: jest,
28
+ });
29
29
  });
30
30
 
31
31
  afterEach(() => {
@@ -33,17 +33,32 @@ describe('socket', () => {
33
33
  jest.useRealTimers();
34
34
  });
35
35
 
36
+ const getDefaultSocketOptions = () => ({
37
+ logOutput: mockConsole,
38
+ });
39
+
40
+ const getMockSocket = () => {
41
+ return getOriginalSocket(getDefaultSocketOptions());
42
+ }
43
+
44
+
45
+ const getConnectedMockSocket = () => {
46
+ return getOriginalConnectedSocket(server, {
47
+ socketOptions: getDefaultSocketOptions(),
48
+ });
49
+ }
50
+
36
51
  describe('auth', () => {
37
52
  test('should handle valid credentials', async () => {
38
- server.addDataHandler('POST', ApiConstants.LOGIN_URL, AUTH_RESPONSE);
53
+ server.addRequestHandler('POST', ApiConstants.LOGIN_URL, DEFAULT_AUTH_RESPONSE);
39
54
  const connectedCallback = jest.fn();
40
55
 
41
- const { socket, mockConsole } = getSocket();
56
+ const { socket } = getMockSocket();
42
57
  socket.onConnected = connectedCallback;
43
58
  const response = await socket.connect();
44
59
 
45
- expect(connectedCallback).toHaveBeenCalledWith(AUTH_RESPONSE);
46
- expect(response).toEqual(AUTH_RESPONSE);
60
+ expect(connectedCallback).toHaveBeenCalledWith(DEFAULT_AUTH_RESPONSE);
61
+ expect(response).toEqual(DEFAULT_AUTH_RESPONSE);
47
62
  expect(socket.isConnected()).toEqual(true);
48
63
 
49
64
  expect(mockConsole.warn.mock.calls.length).toBe(0);
@@ -54,15 +69,15 @@ describe('socket', () => {
54
69
  });
55
70
 
56
71
  test('should handle valid refresh token', async () => {
57
- server.addDataHandler('POST', ApiConstants.LOGIN_URL, AUTH_RESPONSE);
72
+ server.addRequestHandler('POST', ApiConstants.LOGIN_URL, DEFAULT_AUTH_RESPONSE);
58
73
  const connectedCallback = jest.fn();
59
74
 
60
- const { socket, mockConsole } = getSocket();
75
+ const { socket } = getMockSocket();
61
76
  socket.onConnected = connectedCallback;
62
77
  const response = await socket.connectRefreshToken('refresh token');
63
78
 
64
- expect(connectedCallback).toHaveBeenCalledWith(AUTH_RESPONSE);
65
- expect(response).toEqual(AUTH_RESPONSE);
79
+ expect(connectedCallback).toHaveBeenCalledWith(DEFAULT_AUTH_RESPONSE);
80
+ expect(response).toEqual(DEFAULT_AUTH_RESPONSE);
66
81
  expect(socket.isConnected()).toEqual(true);
67
82
 
68
83
  expect(mockConsole.warn.mock.calls.length).toBe(0);
@@ -75,7 +90,7 @@ describe('socket', () => {
75
90
  test('should handle invalid credentials', async () => {
76
91
  server.addErrorHandler('POST', ApiConstants.LOGIN_URL, 'Invalid username or password', 401);
77
92
 
78
- const { socket, mockConsole } = getSocket();
93
+ const { socket } = getMockSocket();
79
94
  let error;
80
95
 
81
96
  try {
@@ -94,15 +109,16 @@ describe('socket', () => {
94
109
 
95
110
  test('should handle connect with custom credentials', async () => {
96
111
  server.stop();
97
- const { socket } = getSocket({
112
+ const { socket } = getOriginalSocket({
98
113
  username: 'dummy',
99
114
  password: 'dummy',
115
+ ...getDefaultSocketOptions(),
100
116
  });
101
117
 
102
118
  // Fail without a server handler with auto reconnect disabled
103
119
  let error;
104
120
  try {
105
- await socket.connect(CONNECT_PARAMS.username, CONNECT_PARAMS.password, false);
121
+ await socket.connect(DEFAULT_CONNECT_PARAMS.username, DEFAULT_CONNECT_PARAMS.password, false);
106
122
  } catch (e) {
107
123
  error = e;
108
124
  }
@@ -111,10 +127,10 @@ describe('socket', () => {
111
127
  await waitForExpect(() => expect(socket.isActive()).toEqual(false));
112
128
 
113
129
  // Valid connect attempt
114
- server = getMockServer();
115
- server.addDataHandler('POST', ApiConstants.LOGIN_URL, AUTH_RESPONSE);
130
+ server = getOriginalMockServer();
131
+ server.addRequestHandler('POST', ApiConstants.LOGIN_URL, DEFAULT_AUTH_RESPONSE);
116
132
 
117
- await socket.connect(CONNECT_PARAMS.username, CONNECT_PARAMS.password, false);
133
+ await socket.connect(DEFAULT_CONNECT_PARAMS.username, DEFAULT_CONNECT_PARAMS.password, false);
118
134
 
119
135
  expect(socket.isConnected()).toEqual(true);
120
136
 
@@ -126,27 +142,28 @@ describe('socket', () => {
126
142
  const sessionResetCallback = jest.fn();
127
143
  const disconnectedCallback = jest.fn();
128
144
 
129
- const { socket, mockConsole } = await getConnectedSocket(server);
145
+ const { socket } = await getConnectedMockSocket();
130
146
  socket.onSessionReset = sessionResetCallback;
131
147
  socket.onDisconnected = disconnectedCallback;
132
148
 
133
149
  // Dummy listener
134
- server.addDataHandler('POST', 'hubs/listeners/hub_updated', undefined);
150
+ server.addRequestHandler('POST', 'hubs/listeners/hub_updated', undefined);
135
151
  await socket.addListener('hubs', 'hub_updated', dummyfn);
136
152
 
137
153
  // Dummy pending request
138
- socket.delete('dummyLogoutDelete').catch((error: Error) => {
139
- // TODO: fix, too unreliable at the moment (depends on the timings)
140
- //expect(error.message).toEqual('Socket disconnected');
141
- });
154
+ server.ignoreMissingHandler('DELETE', 'dummyLogoutDelete');
155
+
156
+ const pendingRequestPromise = defusedPromise(socket.delete('dummyLogoutDelete'));
142
157
 
143
158
  // Logout
144
- server.addDataHandler('DELETE', ApiConstants.LOGOUT_URL);
159
+ server.addRequestHandler('DELETE', ApiConstants.LOGOUT_URL);
145
160
  await socket.logout();
146
161
 
147
162
  expect(sessionResetCallback.mock.calls.length).toBe(1);
148
163
  await waitForExpect(() => expect(disconnectedCallback.mock.calls.length).toBe(1));
149
164
 
165
+ await expect(pendingRequestPromise).rejects.toMatchInlineSnapshot(`"Socket disconnected"`);
166
+
150
167
  expect(socket.isActive()).toEqual(false);
151
168
  expect(socket.hasListeners()).toEqual(false);
152
169
  expect(socket.getPendingRequestCount()).toEqual(0);
@@ -158,7 +175,7 @@ describe('socket', () => {
158
175
 
159
176
  describe('disconnect', () => {
160
177
  test('should handle disconnect', async () => {
161
- const { socket, mockConsole } = await getConnectedSocket(server);
178
+ const { socket } = await getConnectedMockSocket();
162
179
 
163
180
  socket.disconnect();
164
181
 
@@ -170,16 +187,16 @@ describe('socket', () => {
170
187
  });
171
188
 
172
189
  test('should handle wait disconnected timeout', async () => {
173
- const { socket, mockConsole } = await getConnectedSocket(server);
190
+ const { socket } = await getConnectedMockSocket();
174
191
 
175
- let error;
192
+ let error: Error | null = null;
176
193
  try {
177
194
  await socket.waitDisconnected(50);
178
195
  } catch (e) {
179
196
  error = e;
180
197
  }
181
198
 
182
- expect(error).toEqual('Socket disconnect timed out');
199
+ expect(error?.message).toEqual('Socket disconnect timed out');
183
200
 
184
201
  expect(mockConsole.error.mock.calls.length).toBe(1);
185
202
  expect(mockConsole.warn.mock.calls.length).toBe(0);
@@ -191,19 +208,14 @@ describe('socket', () => {
191
208
 
192
209
  describe('reconnect', () => {
193
210
  test('should handle auto reconnect', async () => {
194
- const { socket, mockConsole } = await getConnectedSocket(server);
211
+ const { socket } = await getConnectedMockSocket();
195
212
 
196
- useFakeTimers();
213
+ jest.useFakeTimers();
197
214
 
198
215
  socket.disconnect(true);
199
216
  jest.runOnlyPendingTimers();
200
217
 
201
- // TODO: fix
202
- /*{
203
- const waitForExpectTask = await waitForExpect(() => expect(socket.isActive()).toEqual(false));
204
- jest.advanceTimersByTime(1000);
205
- await waitForExpectTask;
206
- }*/
218
+ expect(socket.isActive()).toEqual(false);
207
219
 
208
220
  // Let it fail once
209
221
  server.stop();
@@ -211,8 +223,8 @@ describe('socket', () => {
211
223
  jest.runOnlyPendingTimers();
212
224
  expect(mockConsole.error.mock.calls.length).toBe(1);
213
225
 
214
- server = getMockServer();
215
- server.addDataHandler('POST', ApiConstants.CONNECT_URL, undefined);
226
+ server = getOriginalMockServer();
227
+ server.addRequestHandler('POST', ApiConstants.CONNECT_URL, undefined);
216
228
  jest.runOnlyPendingTimers();
217
229
  jest.runOnlyPendingTimers();
218
230
  jest.runOnlyPendingTimers();
@@ -232,9 +244,9 @@ describe('socket', () => {
232
244
  });
233
245
 
234
246
  test('should cancel auto reconnect', async () => {
235
- const { socket, mockConsole } = await getConnectedSocket(server);
247
+ const { socket } = await getConnectedMockSocket();
236
248
 
237
- useFakeTimers();
249
+ jest.useFakeTimers();
238
250
 
239
251
  // Disconnect with auto reconnect
240
252
  socket.disconnect(true);
@@ -258,12 +270,12 @@ describe('socket', () => {
258
270
  });
259
271
 
260
272
  test('should handle manual reconnect', async () => {
261
- const { socket, mockConsole } = await getConnectedSocket(server);
273
+ const { socket } = await getConnectedMockSocket();
262
274
 
263
275
  socket.disconnect();
264
276
  await waitForExpect(() => expect(socket.isActive()).toEqual(false));
265
277
 
266
- server.addDataHandler('POST', ApiConstants.CONNECT_URL, undefined);
278
+ server.addRequestHandler('POST', ApiConstants.CONNECT_URL, undefined);
267
279
  await socket.reconnect();
268
280
  expect(socket.isConnected()).toEqual(true);
269
281
 
@@ -274,39 +286,31 @@ describe('socket', () => {
274
286
  await waitForExpect(() => expect(socket.isActive()).toEqual(false));
275
287
  });
276
288
 
277
- // TODO: fix
278
- test.skip('should re-authenticate on lost session', async () => {
289
+ test('should re-authenticate on lost session', async () => {
279
290
  const ErrorResponse = 'Invalid session token';
291
+ const authCallback = jest.fn();
292
+ const connectErrorCallback = jest.fn();
280
293
 
281
294
  // Connect and disconnect
282
- const { socket, mockConsole } = await getConnectedSocket(server);
295
+ const { socket } = await getConnectedMockSocket();
283
296
 
284
- useFakeTimers();
297
+ jest.useFakeTimers();
285
298
  socket.disconnect();
286
299
  jest.runOnlyPendingTimers();
287
300
  expect(socket.isActive()).toEqual(false);
288
301
 
289
302
  // Fail the initial reconnect attempt with 'Invalid session token'
290
303
  // and connect with credentials afterwards
291
- server.addErrorHandler('POST', ApiConstants.CONNECT_URL, ErrorResponse, 400);
304
+ server.addErrorHandler('POST', ApiConstants.CONNECT_URL, ErrorResponse, 400, connectErrorCallback);
292
305
 
293
- const authCallback = jest.fn();
294
- server.addDataHandler('POST', ApiConstants.LOGIN_URL, AUTH_RESPONSE, authCallback);
306
+ server.addRequestHandler('POST', ApiConstants.LOGIN_URL, DEFAULT_AUTH_RESPONSE, authCallback);
295
307
 
296
308
  jest.runOnlyPendingTimers();
297
309
  socket.reconnect();
298
310
 
299
- {
300
- const waitForExpectTask = waitForExpect(
301
- () => {
302
- jest.runOnlyPendingTimers();
303
- expect(authCallback.mock.calls.length).toBe(1);
304
- }
305
- );
306
-
307
- jest.advanceTimersByTime(1000);
308
- await waitForExpectTask;
309
- }
311
+ await jest.advanceTimersByTimeAsync(1000);
312
+ expect(authCallback.mock.calls.length).toBe(1);
313
+ expect(connectErrorCallback.mock.calls.length).toBe(1);
310
314
 
311
315
  expect(socket.isConnected()).toEqual(true);
312
316
  expect(mockConsole.error.mock.calls.length).toBe(0);
@@ -332,9 +336,12 @@ describe('socket', () => {
332
336
 
333
337
  describe('requests', () => {
334
338
  test('should report request timeouts', async () => {
335
- const { socket, mockConsole } = await getConnectedSocket(server);
339
+ const { socket } = await getConnectedMockSocket();
340
+
341
+ server.ignoreMissingHandler('POST', 'hubs/listeners/hub_updated');
342
+ server.ignoreMissingHandler('POST', 'hubs/listeners/hub_added');
336
343
 
337
- useFakeTimers();
344
+ jest.useFakeTimers();
338
345
  socket.addListener('hubs', 'hub_updated', dummyfn)
339
346
  .catch(() => {});
340
347
  socket.addListener('hubs', 'hub_added', dummyfn)
@@ -359,7 +366,7 @@ describe('socket', () => {
359
366
  });
360
367
 
361
368
  test('should handle missing error messages', async () => {
362
- const { socket } = await getConnectedSocket(server);
369
+ const { socket } = await getConnectedMockSocket();
363
370
 
364
371
  server.addErrorHandler('POST', 'test/test', null, 401);
365
372
 
@@ -393,9 +400,9 @@ describe('socket', () => {
393
400
  };
394
401
 
395
402
  test('should handle listener messages', async () => {
396
- const { socket, mockConsole } = await getConnectedSocket(server);
397
- server.addDataHandler('POST', 'hubs/listeners/hub_updated', undefined);
398
- server.addDataHandler('POST', `hubs/${entityId}/listeners/hub_updated`, undefined);
403
+ const { socket } = await getConnectedMockSocket();
404
+ server.addSubscriptionHandler('hubs', 'hub_updated');
405
+ server.addSubscriptionHandler('hubs', 'hub_updated', entityId);
399
406
 
400
407
  const commonSubscriptionCallback = jest.fn();
401
408
  const entitySubscriptionCallback = jest.fn();
@@ -419,10 +426,9 @@ describe('socket', () => {
419
426
  });
420
427
 
421
428
  test('should handle listener removal', async () => {
422
- const { socket, mockConsole } = await getConnectedSocket(server);
429
+ const { socket } = await getConnectedMockSocket();
423
430
 
424
- const subscribeCallback = jest.fn();
425
- server.addDataHandler('POST', 'hubs/listeners/hub_updated', undefined, subscribeCallback);
431
+ const hubUpdatedListener = server.addSubscriptionHandler('hubs', 'hub_updated');
426
432
 
427
433
  // Add two simultaneous pending add events
428
434
  const p1 = socket.addListener('hubs', 'hub_updated', dummyfn);
@@ -434,17 +440,14 @@ describe('socket', () => {
434
440
  const removeListener1 = await p1;
435
441
  const removeListener2 = await p2;
436
442
 
437
- expect(subscribeCallback.mock.calls.length).toBe(1);
443
+ expect(hubUpdatedListener.subscribeFn.mock.calls.length).toBe(1);
438
444
  expect(socket.getPendingSubscriptionCount()).toBe(0);
439
445
 
440
- const deleteCallback = jest.fn();
441
- server.addDataHandler('DELETE', 'hubs/listeners/hub_updated', undefined, deleteCallback);
442
-
443
446
  removeListener1();
444
- expect(deleteCallback.mock.calls.length).toBe(0); // Shouldn't call API yet, still one left
447
+ expect(hubUpdatedListener.unsubscribeFn.mock.calls.length).toBe(0); // Shouldn't call API yet, still one left
445
448
 
446
449
  removeListener2();
447
- await waitForExpect(() => expect(deleteCallback.mock.calls.length).toBe(1));
450
+ await waitForExpect(() => expect(hubUpdatedListener.unsubscribeFn.mock.calls.length).toBe(1));
448
451
 
449
452
  expect(socket.hasListeners()).toBe(false);
450
453
 
@@ -455,7 +458,7 @@ describe('socket', () => {
455
458
  });
456
459
 
457
460
  test('should handle view updates', async () => {
458
- const { socket, mockConsole } = await getConnectedSocket(server);
461
+ const { socket } = await getConnectedMockSocket();
459
462
  const viewUpdateCallback = jest.fn();
460
463
 
461
464
  const removeListener = socket.addViewUpdateListener('hub_user_view', viewUpdateCallback, entityId);
@@ -472,11 +475,9 @@ describe('socket', () => {
472
475
  });
473
476
 
474
477
  describe('hooks', () => {
475
- const hookEventData: IncomingSubscriptionEvent = {
476
- event: 'queue_bundle_finished_hook',
477
- data: {},
478
- completion_id: 1,
479
- };
478
+ const HOOK_MODULE = 'queue';
479
+ const HOOK_NAME = 'queue_bundle_finished_hook';
480
+ const HOOK_COMPLETION_ID = 1;
480
481
 
481
482
  const hookSubscriberInfo: HookSubscriberInfo = {
482
483
  id: 'sfv_checker',
@@ -488,38 +489,32 @@ describe('socket', () => {
488
489
  };
489
490
 
490
491
  test('should handle hook actions', async () => {
491
- const { socket, mockConsole } = await getConnectedSocket(server);
492
+ const { socket } = await getConnectedMockSocket();
492
493
  let removeListener: SubscriptionRemoveHandler | null = null;
493
494
 
494
495
  // Add hook
495
496
  {
496
- const hookAddCallback = jest.fn();
497
- server.addDataHandler('POST', 'queue/hooks/queue_bundle_finished_hook', undefined, hookAddCallback);
497
+ const hook = server.addHookHandler(HOOK_MODULE, HOOK_NAME);
498
498
 
499
499
  removeListener = await socket.addHook(
500
- 'queue',
501
- 'queue_bundle_finished_hook',
500
+ HOOK_MODULE,
501
+ HOOK_NAME,
502
502
  rejectCallback,
503
503
  hookSubscriberInfo
504
504
  );
505
505
 
506
- expect((hookAddCallback.mock.calls[0][0] as any).data).toEqual(hookSubscriberInfo);
507
- expect(hookAddCallback.mock.calls.length).toBe(1);
508
- }
506
+ expect((hook.subscribeFn.mock.calls[0][0] as any).data).toEqual(hookSubscriberInfo);
507
+ expect(hook.subscribeFn.mock.calls.length).toBe(1);
509
508
 
510
- // Simulate action
511
- {
512
- const hookEventCallback = jest.fn();
513
- server.addDataHandler('POST', 'queue/hooks/queue_bundle_finished_hook/1/reject', undefined, hookEventCallback);
514
- server.send(hookEventData);
515
- await waitForExpect(() => expect(hookEventCallback.mock.calls.length).toBe(1));
509
+ // Simulate action
510
+ const hookResolver = hook.addResolver(HOOK_COMPLETION_ID);
511
+ hookResolver.fire({});
512
+ await waitForExpect(() => expect(hookResolver.rejectFn.mock.calls.length).toBe(1));
516
513
  }
517
514
 
518
515
  // Clean up
519
- {
520
- removeListener();
521
- expect(socket.hasListeners()).toBe(false);
522
- }
516
+ removeListener();
517
+ expect(socket.hasListeners()).toBe(false);
523
518
 
524
519
  expect(mockConsole.warn.mock.calls.length).toBe(0);
525
520
 
@@ -530,8 +525,11 @@ describe('socket', () => {
530
525
 
531
526
  describe('logging', () => {
532
527
  const connect = async (logLevel: string) => {
533
- const { socket, mockConsole } = await getConnectedSocket(server, {
534
- logLevel,
528
+ const { socket } = await getOriginalConnectedSocket(server, {
529
+ socketOptions: {
530
+ logLevel,
531
+ ...getDefaultSocketOptions(),
532
+ },
535
533
  });
536
534
 
537
535
  socket.disconnect(true);
@@ -0,0 +1,3 @@
1
+ export * from './mock-data.js';
2
+ export * from './mock-server.js';
3
+ export * from './mock-socket.js';
@@ -0,0 +1,36 @@
1
+
2
+ export const DEFAULT_CONNECT_PARAMS = {
3
+ username: 'test',
4
+ password: 'test',
5
+ url: 'ws://localhost:7171/api/v1/',
6
+ };
7
+
8
+ export const DEFAULT_CONNECT_RESPONSE = {
9
+ session_id: 1,
10
+ auth_token: 'b823187f-4aab-4b71-9764-e63e88401a26',
11
+ token_type: 'Bearer',
12
+ user: {
13
+ permissions: [ 'admin' ],
14
+ username: 'test',
15
+ active_sessions: 1,
16
+ last_login: 0,
17
+ },
18
+ system_info: {
19
+ api_version: 1,
20
+ api_feature_level: 0,
21
+ cid: 'AHLUODI2YZ2U7FDWMHFNJU65ERGKUN4MH7GW5LY',
22
+ hostname: 'ubuntu-htpc',
23
+ network_type: 'private',
24
+ path_separator: '/',
25
+ platform: 'other',
26
+ language: 'fi',
27
+ client_started: 1483972366,
28
+ client_version: 'AirDC++w 2.14.0b-39-g3af3 x86_64',
29
+ },
30
+ wizard_pending: false,
31
+ };
32
+
33
+ export const DEFAULT_AUTH_RESPONSE = {
34
+ ...DEFAULT_CONNECT_RESPONSE,
35
+ refresh_token: '5124faasf-4aab-4b71-9764-e63e88401a26',
36
+ }