@pezkuwi/rpc-provider 16.5.16 → 16.5.18
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/build/LICENSE +201 -0
- package/build/README.md +68 -0
- package/build/bizinikiwi-connect/Health.js +259 -0
- package/build/bizinikiwi-connect/index.js +319 -0
- package/build/bundle.js +5 -0
- package/build/cjs/bizinikiwi-connect/Health.d.ts +7 -0
- package/build/cjs/bizinikiwi-connect/Health.js +264 -0
- package/build/cjs/bizinikiwi-connect/index.d.ts +22 -0
- package/build/cjs/bizinikiwi-connect/index.js +323 -0
- package/build/cjs/bizinikiwi-connect/types.d.ts +12 -0
- package/build/cjs/bizinikiwi-connect/types.js +2 -0
- package/build/cjs/bundle.d.ts +5 -0
- package/build/cjs/bundle.js +14 -0
- package/build/cjs/coder/error.js +53 -0
- package/build/cjs/coder/index.js +63 -0
- package/build/cjs/defaults.js +8 -0
- package/build/cjs/http/index.js +196 -0
- package/build/cjs/http/types.js +2 -0
- package/build/cjs/index.js +5 -0
- package/build/cjs/lru.js +150 -0
- package/build/cjs/mock/index.js +196 -0
- package/build/cjs/mock/mockHttp.js +17 -0
- package/build/cjs/mock/mockWs.js +47 -0
- package/build/cjs/mock/types.js +2 -0
- package/build/cjs/packageDetect.d.ts +1 -0
- package/build/cjs/packageInfo.js +4 -0
- package/build/cjs/types.js +2 -0
- package/build/cjs/ws/errors.js +41 -0
- package/build/cjs/ws/index.js +529 -0
- package/build/coder/error.d.ts +29 -0
- package/build/coder/error.js +50 -0
- package/build/coder/index.d.ts +8 -0
- package/build/coder/index.js +58 -0
- package/build/defaults.d.ts +5 -0
- package/build/defaults.js +6 -0
- package/build/http/index.d.ts +81 -0
- package/build/http/index.js +191 -0
- package/build/http/types.d.ts +7 -0
- package/build/http/types.js +1 -0
- package/build/index.d.ts +2 -0
- package/build/index.js +2 -0
- package/build/lru.d.ts +15 -0
- package/build/lru.js +146 -0
- package/build/mock/index.d.ts +35 -0
- package/build/mock/index.js +191 -0
- package/build/mock/mockHttp.d.ts +9 -0
- package/build/mock/mockHttp.js +12 -0
- package/build/mock/mockWs.d.ts +26 -0
- package/build/mock/mockWs.js +43 -0
- package/build/mock/types.d.ts +23 -0
- package/build/mock/types.js +1 -0
- package/build/package.json +344 -0
- package/build/packageDetect.d.ts +1 -0
- package/build/packageDetect.js +4 -0
- package/build/packageInfo.d.ts +6 -0
- package/build/packageInfo.js +1 -0
- package/build/types.d.ts +85 -0
- package/build/types.js +1 -0
- package/build/ws/errors.d.ts +1 -0
- package/build/ws/errors.js +38 -0
- package/build/ws/index.d.ts +121 -0
- package/build/ws/index.js +524 -0
- package/build-deno/README.md +66 -0
- package/build-deno/bizinikiwi-connect/Health.ts +323 -0
- package/build-deno/bizinikiwi-connect/index.ts +417 -0
- package/build-deno/bizinikiwi-connect/types.ts +14 -0
- package/build-deno/bundle.ts +6 -0
- package/build-deno/coder/error.ts +64 -0
- package/build-deno/coder/index.ts +86 -0
- package/build-deno/defaults.ts +8 -0
- package/build-deno/http/index.ts +236 -0
- package/build-deno/http/types.ts +9 -0
- package/build-deno/index.ts +4 -0
- package/build-deno/lru.ts +189 -0
- package/build-deno/mock/index.ts +257 -0
- package/build-deno/mock/mockHttp.ts +33 -0
- package/build-deno/mock/mockWs.ts +87 -0
- package/build-deno/mock/types.ts +34 -0
- package/build-deno/mod.ts +2 -0
- package/build-deno/packageDetect.ts +8 -0
- package/build-deno/packageInfo.ts +3 -0
- package/build-deno/types.ts +99 -0
- package/build-deno/ws/errors.ts +38 -0
- package/build-deno/ws/index.ts +650 -0
- package/build-tsc-cjs/packageDetect.js +6 -0
- package/{cjs → build-tsc-cjs}/packageInfo.js +1 -1
- package/{packageInfo.js → build-tsc-esm/packageInfo.js} +1 -1
- package/package.json +16 -16
- package/src/bizinikiwi-connect/Health.ts +325 -0
- package/src/bizinikiwi-connect/index.spec.ts +675 -0
- package/src/bizinikiwi-connect/index.ts +427 -0
- package/src/bizinikiwi-connect/types.ts +16 -0
- package/src/bundle.ts +8 -0
- package/src/coder/decodeResponse.spec.ts +70 -0
- package/src/coder/encodeJson.spec.ts +20 -0
- package/src/coder/encodeObject.spec.ts +25 -0
- package/src/coder/error.spec.ts +111 -0
- package/src/coder/error.ts +66 -0
- package/src/coder/index.ts +88 -0
- package/src/defaults.ts +10 -0
- package/src/http/index.spec.ts +72 -0
- package/src/http/index.ts +238 -0
- package/src/http/send.spec.ts +61 -0
- package/src/http/types.ts +11 -0
- package/src/index.ts +6 -0
- package/src/lru.spec.ts +74 -0
- package/src/lru.ts +197 -0
- package/src/mock/index.ts +259 -0
- package/src/mock/mockHttp.ts +35 -0
- package/src/mock/mockWs.ts +92 -0
- package/src/mock/on.spec.ts +43 -0
- package/src/mock/send.spec.ts +38 -0
- package/src/mock/subscribe.spec.ts +81 -0
- package/src/mock/types.ts +36 -0
- package/src/mock/unsubscribe.spec.ts +57 -0
- package/src/mod.ts +4 -0
- package/src/packageDetect.ts +12 -0
- package/src/packageInfo.ts +6 -0
- package/src/types.ts +101 -0
- package/src/ws/connect.spec.ts +167 -0
- package/src/ws/errors.ts +41 -0
- package/src/ws/index.spec.ts +97 -0
- package/src/ws/index.ts +652 -0
- package/src/ws/send.spec.ts +126 -0
- package/src/ws/state.spec.ts +20 -0
- package/src/ws/subscribe.spec.ts +68 -0
- package/src/ws/unsubscribe.spec.ts +100 -0
- package/tsconfig.build.json +17 -0
- package/tsconfig.build.tsbuildinfo +1 -0
- package/tsconfig.spec.json +18 -0
- package/tsconfig.spec.tsbuildinfo +1 -0
- /package/{cjs → build}/bizinikiwi-connect/Health.d.ts +0 -0
- /package/{cjs → build}/bizinikiwi-connect/index.d.ts +0 -0
- /package/{cjs → build}/bizinikiwi-connect/types.d.ts +0 -0
- /package/{packageDetect.d.ts → build/bizinikiwi-connect/types.js} +0 -0
- /package/{cjs → build}/bundle.d.ts +0 -0
- /package/{coder → build/cjs/coder}/error.d.ts +0 -0
- /package/{coder → build/cjs/coder}/index.d.ts +0 -0
- /package/{defaults.d.ts → build/cjs/defaults.d.ts} +0 -0
- /package/{http → build/cjs/http}/index.d.ts +0 -0
- /package/{http → build/cjs/http}/types.d.ts +0 -0
- /package/{index.d.ts → build/cjs/index.d.ts} +0 -0
- /package/{lru.d.ts → build/cjs/lru.d.ts} +0 -0
- /package/{mock → build/cjs/mock}/index.d.ts +0 -0
- /package/{mock → build/cjs/mock}/mockHttp.d.ts +0 -0
- /package/{mock → build/cjs/mock}/mockWs.d.ts +0 -0
- /package/{mock → build/cjs/mock}/types.d.ts +0 -0
- /package/{cjs → build/cjs}/package.json +0 -0
- /package/{cjs → build/cjs}/packageDetect.js +0 -0
- /package/{packageInfo.d.ts → build/cjs/packageInfo.d.ts} +0 -0
- /package/{types.d.ts → build/cjs/types.d.ts} +0 -0
- /package/{ws → build/cjs/ws}/errors.d.ts +0 -0
- /package/{ws → build/cjs/ws}/index.d.ts +0 -0
- /package/{bizinikiwi-connect → build-tsc/bizinikiwi-connect}/Health.d.ts +0 -0
- /package/{bizinikiwi-connect → build-tsc/bizinikiwi-connect}/index.d.ts +0 -0
- /package/{bizinikiwi-connect → build-tsc/bizinikiwi-connect}/types.d.ts +0 -0
- /package/{bundle.d.ts → build-tsc/bundle.d.ts} +0 -0
- /package/{cjs → build-tsc}/coder/error.d.ts +0 -0
- /package/{cjs → build-tsc}/coder/index.d.ts +0 -0
- /package/{cjs → build-tsc}/defaults.d.ts +0 -0
- /package/{cjs → build-tsc}/http/index.d.ts +0 -0
- /package/{cjs → build-tsc}/http/types.d.ts +0 -0
- /package/{cjs → build-tsc}/index.d.ts +0 -0
- /package/{cjs → build-tsc}/lru.d.ts +0 -0
- /package/{cjs → build-tsc}/mock/index.d.ts +0 -0
- /package/{cjs → build-tsc}/mock/mockHttp.d.ts +0 -0
- /package/{cjs → build-tsc}/mock/mockWs.d.ts +0 -0
- /package/{cjs → build-tsc}/mock/types.d.ts +0 -0
- /package/{cjs → build-tsc}/packageDetect.d.ts +0 -0
- /package/{cjs → build-tsc}/packageInfo.d.ts +0 -0
- /package/{cjs → build-tsc}/types.d.ts +0 -0
- /package/{cjs → build-tsc}/ws/errors.d.ts +0 -0
- /package/{cjs → build-tsc}/ws/index.d.ts +0 -0
- /package/{cjs → build-tsc-cjs}/bizinikiwi-connect/Health.js +0 -0
- /package/{cjs → build-tsc-cjs}/bizinikiwi-connect/index.js +0 -0
- /package/{cjs → build-tsc-cjs}/bizinikiwi-connect/types.js +0 -0
- /package/{cjs → build-tsc-cjs}/bundle.js +0 -0
- /package/{cjs → build-tsc-cjs}/coder/error.js +0 -0
- /package/{cjs → build-tsc-cjs}/coder/index.js +0 -0
- /package/{cjs → build-tsc-cjs}/defaults.js +0 -0
- /package/{cjs → build-tsc-cjs}/http/index.js +0 -0
- /package/{cjs → build-tsc-cjs}/http/types.js +0 -0
- /package/{cjs → build-tsc-cjs}/index.js +0 -0
- /package/{cjs → build-tsc-cjs}/lru.js +0 -0
- /package/{cjs → build-tsc-cjs}/mock/index.js +0 -0
- /package/{cjs → build-tsc-cjs}/mock/mockHttp.js +0 -0
- /package/{cjs → build-tsc-cjs}/mock/mockWs.js +0 -0
- /package/{cjs → build-tsc-cjs}/mock/types.js +0 -0
- /package/{cjs → build-tsc-cjs}/types.js +0 -0
- /package/{cjs → build-tsc-cjs}/ws/errors.js +0 -0
- /package/{cjs → build-tsc-cjs}/ws/index.js +0 -0
- /package/{bizinikiwi-connect → build-tsc-esm/bizinikiwi-connect}/Health.js +0 -0
- /package/{bizinikiwi-connect → build-tsc-esm/bizinikiwi-connect}/index.js +0 -0
- /package/{bizinikiwi-connect → build-tsc-esm/bizinikiwi-connect}/types.js +0 -0
- /package/{bundle.js → build-tsc-esm/bundle.js} +0 -0
- /package/{coder → build-tsc-esm/coder}/error.js +0 -0
- /package/{coder → build-tsc-esm/coder}/index.js +0 -0
- /package/{defaults.js → build-tsc-esm/defaults.js} +0 -0
- /package/{http → build-tsc-esm/http}/index.js +0 -0
- /package/{http → build-tsc-esm/http}/types.js +0 -0
- /package/{index.js → build-tsc-esm/index.js} +0 -0
- /package/{lru.js → build-tsc-esm/lru.js} +0 -0
- /package/{mock → build-tsc-esm/mock}/index.js +0 -0
- /package/{mock → build-tsc-esm/mock}/mockHttp.js +0 -0
- /package/{mock → build-tsc-esm/mock}/mockWs.js +0 -0
- /package/{mock → build-tsc-esm/mock}/types.js +0 -0
- /package/{packageDetect.js → build-tsc-esm/packageDetect.js} +0 -0
- /package/{types.js → build-tsc-esm/types.js} +0 -0
- /package/{ws → build-tsc-esm/ws}/errors.js +0 -0
- /package/{ws → build-tsc-esm/ws}/index.js +0 -0
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
// Copyright 2017-2025 @pezkuwi/rpc-provider authors & contributors
|
|
2
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
|
|
4
|
+
/// <reference types="@pezkuwi/dev-test/globals.d.ts" />
|
|
5
|
+
|
|
6
|
+
import type { Request } from '../mock/mockWs.js';
|
|
7
|
+
import type { Global, Mock } from '../mock/types.js';
|
|
8
|
+
|
|
9
|
+
import { mockWs } from '../mock/mockWs.js';
|
|
10
|
+
import { WsProvider } from './index.js';
|
|
11
|
+
|
|
12
|
+
declare const global: Global;
|
|
13
|
+
|
|
14
|
+
const TEST_WS_URL = 'ws://localhost-send.spec.ts:9965';
|
|
15
|
+
|
|
16
|
+
let provider: WsProvider | null;
|
|
17
|
+
let mock: Mock;
|
|
18
|
+
|
|
19
|
+
function createMock (requests: Request[]): void {
|
|
20
|
+
mock = mockWs(requests, TEST_WS_URL);
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
function createWs (autoConnect = 1000): Promise<WsProvider> {
|
|
24
|
+
provider = new WsProvider(TEST_WS_URL, autoConnect);
|
|
25
|
+
|
|
26
|
+
return provider.isReady;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
describe('send', (): void => {
|
|
30
|
+
let globalWs: typeof WebSocket;
|
|
31
|
+
|
|
32
|
+
beforeEach((): void => {
|
|
33
|
+
globalWs = global.WebSocket;
|
|
34
|
+
});
|
|
35
|
+
|
|
36
|
+
afterEach(async () => {
|
|
37
|
+
global.WebSocket = globalWs;
|
|
38
|
+
|
|
39
|
+
if (mock) {
|
|
40
|
+
await mock.done();
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
if (provider) {
|
|
44
|
+
await provider.disconnect();
|
|
45
|
+
provider = null;
|
|
46
|
+
}
|
|
47
|
+
});
|
|
48
|
+
|
|
49
|
+
it('handles internal errors', (): Promise<any> => {
|
|
50
|
+
createMock([{
|
|
51
|
+
id: 1,
|
|
52
|
+
method: 'test_body',
|
|
53
|
+
reply: {
|
|
54
|
+
result: 'ok'
|
|
55
|
+
}
|
|
56
|
+
}]);
|
|
57
|
+
|
|
58
|
+
return createWs().then((ws) =>
|
|
59
|
+
ws
|
|
60
|
+
.send('test_encoding', [{ error: 'send error' }])
|
|
61
|
+
.catch((error): void => {
|
|
62
|
+
// eslint-disable-next-line jest/no-conditional-expect
|
|
63
|
+
expect((error as Error).message).toEqual('send error');
|
|
64
|
+
})
|
|
65
|
+
);
|
|
66
|
+
});
|
|
67
|
+
|
|
68
|
+
it('passes the body through correctly', (): Promise<void> => {
|
|
69
|
+
createMock([{
|
|
70
|
+
id: 1,
|
|
71
|
+
method: 'test_body',
|
|
72
|
+
reply: {
|
|
73
|
+
result: 'ok'
|
|
74
|
+
}
|
|
75
|
+
}]);
|
|
76
|
+
|
|
77
|
+
return createWs().then((ws) =>
|
|
78
|
+
ws
|
|
79
|
+
.send('test_body', ['param'])
|
|
80
|
+
.then((): void => {
|
|
81
|
+
expect(
|
|
82
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
|
|
83
|
+
(mock.body as any).test_body
|
|
84
|
+
).toEqual('{"id":1,"jsonrpc":"2.0","method":"test_body","params":["param"]}');
|
|
85
|
+
})
|
|
86
|
+
);
|
|
87
|
+
});
|
|
88
|
+
|
|
89
|
+
it('throws error when !response.ok', (): Promise<any> => {
|
|
90
|
+
createMock([{
|
|
91
|
+
error: {
|
|
92
|
+
code: 666,
|
|
93
|
+
message: 'error'
|
|
94
|
+
},
|
|
95
|
+
id: 1,
|
|
96
|
+
method: 'something'
|
|
97
|
+
}]);
|
|
98
|
+
|
|
99
|
+
return createWs().then((ws) =>
|
|
100
|
+
ws
|
|
101
|
+
.send('test_error', [])
|
|
102
|
+
.catch((error): void => {
|
|
103
|
+
// eslint-disable-next-line jest/no-conditional-expect
|
|
104
|
+
expect((error as Error).message).toMatch(/666: error/);
|
|
105
|
+
})
|
|
106
|
+
);
|
|
107
|
+
});
|
|
108
|
+
|
|
109
|
+
it('adds subscriptions', (): Promise<void> => {
|
|
110
|
+
createMock([{
|
|
111
|
+
id: 1,
|
|
112
|
+
method: 'test_sub',
|
|
113
|
+
reply: {
|
|
114
|
+
result: 1
|
|
115
|
+
}
|
|
116
|
+
}]);
|
|
117
|
+
|
|
118
|
+
return createWs().then((ws) =>
|
|
119
|
+
ws
|
|
120
|
+
.send('test_sub', [])
|
|
121
|
+
.then((id): void => {
|
|
122
|
+
expect(id).toEqual(1);
|
|
123
|
+
})
|
|
124
|
+
);
|
|
125
|
+
});
|
|
126
|
+
});
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
// Copyright 2017-2025 @pezkuwi/rpc-provider authors & contributors
|
|
2
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
|
|
4
|
+
/// <reference types="@pezkuwi/dev-test/globals.d.ts" />
|
|
5
|
+
|
|
6
|
+
import { WsProvider } from './index.js';
|
|
7
|
+
|
|
8
|
+
describe('state', (): void => {
|
|
9
|
+
it('requires an ws:// prefixed endpoint', (): void => {
|
|
10
|
+
expect(
|
|
11
|
+
() => new WsProvider('http://', 0)
|
|
12
|
+
).toThrow(/with 'ws/);
|
|
13
|
+
});
|
|
14
|
+
|
|
15
|
+
it('allows wss:// endpoints', (): void => {
|
|
16
|
+
expect(
|
|
17
|
+
() => new WsProvider('wss://', 0)
|
|
18
|
+
).not.toThrow();
|
|
19
|
+
});
|
|
20
|
+
});
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
// Copyright 2017-2025 @pezkuwi/rpc-provider authors & contributors
|
|
2
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
|
|
4
|
+
/// <reference types="@pezkuwi/dev-test/globals.d.ts" />
|
|
5
|
+
|
|
6
|
+
import type { Request } from '../mock/mockWs.js';
|
|
7
|
+
import type { Global, Mock } from './../mock/types.js';
|
|
8
|
+
|
|
9
|
+
import { mockWs } from '../mock/mockWs.js';
|
|
10
|
+
import { WsProvider } from './index.js';
|
|
11
|
+
|
|
12
|
+
declare const global: Global;
|
|
13
|
+
|
|
14
|
+
const TEST_WS_URL = 'ws://localhost-subscribe.test.ts:9933';
|
|
15
|
+
|
|
16
|
+
let provider: WsProvider | null;
|
|
17
|
+
let mock: Mock;
|
|
18
|
+
|
|
19
|
+
function createMock (requests: Request[]): void {
|
|
20
|
+
mock = mockWs(requests, TEST_WS_URL);
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
function createWs (autoConnect = 1000): Promise<WsProvider> {
|
|
24
|
+
provider = new WsProvider(TEST_WS_URL, autoConnect);
|
|
25
|
+
|
|
26
|
+
return provider.isReady;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
describe('subscribe', (): void => {
|
|
30
|
+
let globalWs: typeof WebSocket;
|
|
31
|
+
|
|
32
|
+
beforeEach((): void => {
|
|
33
|
+
globalWs = global.WebSocket;
|
|
34
|
+
});
|
|
35
|
+
|
|
36
|
+
afterEach(async () => {
|
|
37
|
+
global.WebSocket = globalWs;
|
|
38
|
+
|
|
39
|
+
if (mock) {
|
|
40
|
+
await mock.done();
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
if (provider) {
|
|
44
|
+
await provider.disconnect();
|
|
45
|
+
provider = null;
|
|
46
|
+
}
|
|
47
|
+
});
|
|
48
|
+
|
|
49
|
+
it('adds subscriptions', (): Promise<void> => {
|
|
50
|
+
createMock([{
|
|
51
|
+
id: 1,
|
|
52
|
+
method: 'test_sub',
|
|
53
|
+
reply: {
|
|
54
|
+
result: 1
|
|
55
|
+
}
|
|
56
|
+
}]);
|
|
57
|
+
|
|
58
|
+
return createWs().then((ws) =>
|
|
59
|
+
ws
|
|
60
|
+
.subscribe('type', 'test_sub', [], (cb): void => {
|
|
61
|
+
expect(cb).toEqual(expect.anything());
|
|
62
|
+
})
|
|
63
|
+
.then((id): void => {
|
|
64
|
+
expect(id).toEqual(1);
|
|
65
|
+
})
|
|
66
|
+
);
|
|
67
|
+
});
|
|
68
|
+
});
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
// Copyright 2017-2025 @pezkuwi/rpc-provider authors & contributors
|
|
2
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
|
|
4
|
+
/// <reference types="@pezkuwi/dev-test/globals.d.ts" />
|
|
5
|
+
|
|
6
|
+
import type { Request } from '../mock/mockWs.js';
|
|
7
|
+
import type { Global, Mock } from './../mock/types.js';
|
|
8
|
+
|
|
9
|
+
import { mockWs } from '../mock/mockWs.js';
|
|
10
|
+
import { WsProvider } from './index.js';
|
|
11
|
+
|
|
12
|
+
declare const global: Global;
|
|
13
|
+
|
|
14
|
+
const TEST_WS_URL = 'ws://localhost-unsubscribe.test.ts:9933';
|
|
15
|
+
|
|
16
|
+
let provider: WsProvider | null;
|
|
17
|
+
let mock: Mock;
|
|
18
|
+
|
|
19
|
+
function createMock (requests: Request[]): void {
|
|
20
|
+
mock = mockWs(requests, TEST_WS_URL);
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
function createWs (autoConnect = 1000): Promise<WsProvider> {
|
|
24
|
+
provider = new WsProvider(TEST_WS_URL, autoConnect);
|
|
25
|
+
|
|
26
|
+
return provider.isReady;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
describe('subscribe', (): void => {
|
|
30
|
+
let globalWs: typeof WebSocket;
|
|
31
|
+
|
|
32
|
+
beforeEach((): void => {
|
|
33
|
+
globalWs = global.WebSocket;
|
|
34
|
+
});
|
|
35
|
+
|
|
36
|
+
afterEach(async () => {
|
|
37
|
+
global.WebSocket = globalWs;
|
|
38
|
+
|
|
39
|
+
if (mock) {
|
|
40
|
+
await mock.done();
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
if (provider) {
|
|
44
|
+
await provider.disconnect();
|
|
45
|
+
provider = null;
|
|
46
|
+
}
|
|
47
|
+
});
|
|
48
|
+
|
|
49
|
+
it('removes subscriptions', async (): Promise<void> => {
|
|
50
|
+
createMock([
|
|
51
|
+
{
|
|
52
|
+
id: 1,
|
|
53
|
+
method: 'subscribe_test',
|
|
54
|
+
reply: {
|
|
55
|
+
result: 1
|
|
56
|
+
}
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
id: 2,
|
|
60
|
+
method: 'unsubscribe_test',
|
|
61
|
+
reply: {
|
|
62
|
+
result: true
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
]);
|
|
66
|
+
|
|
67
|
+
await createWs().then((ws) =>
|
|
68
|
+
ws
|
|
69
|
+
.subscribe('test', 'subscribe_test', [], (cb): void => {
|
|
70
|
+
expect(cb).toEqual(expect.anything());
|
|
71
|
+
})
|
|
72
|
+
.then((id): Promise<boolean> => {
|
|
73
|
+
return ws.unsubscribe('test', 'subscribe_test', id);
|
|
74
|
+
})
|
|
75
|
+
);
|
|
76
|
+
});
|
|
77
|
+
|
|
78
|
+
it('fails when sub not found', (): Promise<void> => {
|
|
79
|
+
createMock([{
|
|
80
|
+
id: 1,
|
|
81
|
+
method: 'subscribe_test',
|
|
82
|
+
reply: {
|
|
83
|
+
result: 1
|
|
84
|
+
}
|
|
85
|
+
}]);
|
|
86
|
+
|
|
87
|
+
return createWs().then((ws) =>
|
|
88
|
+
ws
|
|
89
|
+
.subscribe('test', 'subscribe_test', [], (cb): void => {
|
|
90
|
+
expect(cb).toEqual(expect.anything());
|
|
91
|
+
})
|
|
92
|
+
.then((): Promise<boolean> => {
|
|
93
|
+
return ws.unsubscribe('test', 'subscribe_test', 111);
|
|
94
|
+
})
|
|
95
|
+
.then((result): void => {
|
|
96
|
+
expect(result).toBe(false);
|
|
97
|
+
})
|
|
98
|
+
);
|
|
99
|
+
});
|
|
100
|
+
});
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
{
|
|
2
|
+
"extends": "../../tsconfig.base.json",
|
|
3
|
+
"compilerOptions": {
|
|
4
|
+
"baseUrl": "..",
|
|
5
|
+
"outDir": "./build",
|
|
6
|
+
"rootDir": "./src",
|
|
7
|
+
"resolveJsonModule": true
|
|
8
|
+
},
|
|
9
|
+
"exclude": [
|
|
10
|
+
"**/*.spec.ts",
|
|
11
|
+
"**/mod.ts"
|
|
12
|
+
],
|
|
13
|
+
"references": [
|
|
14
|
+
{ "path": "../types/tsconfig.build.json" },
|
|
15
|
+
{ "path": "../types-support/tsconfig.build.json" }
|
|
16
|
+
]
|
|
17
|
+
}
|