rivetkit 2.0.4 → 2.0.6
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/tsup/actor/errors.cjs +2 -2
- package/dist/tsup/actor/errors.js +1 -1
- package/dist/tsup/actor-router-consts-BK6arfy8.d.cts +17 -0
- package/dist/tsup/actor-router-consts-BK6arfy8.d.ts +17 -0
- package/dist/tsup/chunk-2K3JMDAN.js +232 -0
- package/dist/tsup/chunk-2K3JMDAN.js.map +1 -0
- package/dist/tsup/chunk-42I3OZ3Q.js +15 -0
- package/dist/tsup/chunk-42I3OZ3Q.js.map +1 -0
- package/dist/tsup/{chunk-XJQHKJ4P.js → chunk-4CKHQRXG.js} +1650 -4147
- package/dist/tsup/chunk-4CKHQRXG.js.map +1 -0
- package/dist/tsup/{chunk-6LJT3QRL.cjs → chunk-5JBFVV4C.cjs} +37 -12
- package/dist/tsup/chunk-5JBFVV4C.cjs.map +1 -0
- package/dist/tsup/{chunk-SBHHJ6QS.cjs → chunk-5QGQK44L.cjs} +2 -2
- package/dist/tsup/{chunk-SBHHJ6QS.cjs.map → chunk-5QGQK44L.cjs.map} +1 -1
- package/dist/tsup/{chunk-IH6CKNDW.cjs → chunk-6P6RA47N.cjs} +9 -9
- package/dist/tsup/{chunk-IH6CKNDW.cjs.map → chunk-6P6RA47N.cjs.map} +1 -1
- package/dist/tsup/chunk-7OUKNSTU.js +1043 -0
- package/dist/tsup/chunk-7OUKNSTU.js.map +1 -0
- package/dist/tsup/{chunk-LWNKVZG5.cjs → chunk-DIAYNQTE.cjs} +13 -25
- package/dist/tsup/chunk-DIAYNQTE.cjs.map +1 -0
- package/dist/tsup/{chunk-3F2YSRJL.js → chunk-G75SVQON.js} +4 -4
- package/dist/tsup/{chunk-QNNXFOQV.cjs → chunk-KG3C7MKR.cjs} +3 -3
- package/dist/tsup/{chunk-QNNXFOQV.cjs.map → chunk-KG3C7MKR.cjs.map} +1 -1
- package/dist/tsup/chunk-KUPQZYUQ.cjs +15 -0
- package/dist/tsup/chunk-KUPQZYUQ.cjs.map +1 -0
- package/dist/tsup/{chunk-4CXBCT26.cjs → chunk-MRRT2CZD.cjs} +7 -7
- package/dist/tsup/{chunk-4CXBCT26.cjs.map → chunk-MRRT2CZD.cjs.map} +1 -1
- package/dist/tsup/chunk-NTCUGYSD.cjs +1043 -0
- package/dist/tsup/chunk-NTCUGYSD.cjs.map +1 -0
- package/dist/tsup/{chunk-PQY7KKTL.js → chunk-RGQR2J7S.js} +32 -7
- package/dist/tsup/{chunk-PQY7KKTL.js.map → chunk-RGQR2J7S.js.map} +1 -1
- package/dist/tsup/chunk-TCUI5JFE.cjs +232 -0
- package/dist/tsup/chunk-TCUI5JFE.cjs.map +1 -0
- package/dist/tsup/chunk-TWGATZ3X.cjs +3676 -0
- package/dist/tsup/chunk-TWGATZ3X.cjs.map +1 -0
- package/dist/tsup/chunk-UFWAK3X2.cjs +3796 -0
- package/dist/tsup/chunk-UFWAK3X2.cjs.map +1 -0
- package/dist/tsup/chunk-UTI5NCES.cjs +20 -0
- package/dist/tsup/{chunk-4R73YDN3.cjs.map → chunk-UTI5NCES.cjs.map} +1 -1
- package/dist/tsup/{chunk-QK72M5JB.js → chunk-VCEHU56K.js} +2 -2
- package/dist/tsup/{chunk-HI3HWJRC.js → chunk-VPV4MWXR.js} +4 -4
- package/dist/tsup/{chunk-HI3HWJRC.js.map → chunk-VPV4MWXR.js.map} +1 -1
- package/dist/tsup/chunk-W6LN7AF5.js +3676 -0
- package/dist/tsup/chunk-W6LN7AF5.js.map +1 -0
- package/dist/tsup/{chunk-LV2S3OU3.js → chunk-WC2PSJWN.js} +2 -2
- package/dist/tsup/{chunk-NFU2BBT5.js → chunk-YPZFLUO6.js} +2 -2
- package/dist/tsup/chunk-YPZFLUO6.js.map +1 -0
- package/dist/tsup/{chunk-H26RP6GD.js → chunk-ZYLTS2EM.js} +3 -15
- package/dist/tsup/chunk-ZYLTS2EM.js.map +1 -0
- package/dist/tsup/client/mod.cjs +10 -10
- package/dist/tsup/client/mod.d.cts +2 -2
- package/dist/tsup/client/mod.d.ts +2 -2
- package/dist/tsup/client/mod.js +9 -9
- package/dist/tsup/common/log.cjs +4 -4
- package/dist/tsup/common/log.js +3 -3
- package/dist/tsup/common/websocket.cjs +5 -5
- package/dist/tsup/common/websocket.js +4 -4
- package/dist/tsup/{connection-BI-6UIBJ.d.ts → connection-BLemxi4f.d.ts} +23 -12
- package/dist/tsup/{connection-Dyd4NLGW.d.cts → connection-CpDIydXf.d.cts} +23 -12
- package/dist/tsup/driver-helpers/mod.cjs +6 -6
- package/dist/tsup/driver-helpers/mod.d.cts +2 -2
- package/dist/tsup/driver-helpers/mod.d.ts +2 -2
- package/dist/tsup/driver-helpers/mod.js +5 -5
- package/dist/tsup/driver-test-suite/mod.cjs +614 -140
- package/dist/tsup/driver-test-suite/mod.cjs.map +1 -1
- package/dist/tsup/driver-test-suite/mod.d.cts +2 -2
- package/dist/tsup/driver-test-suite/mod.d.ts +2 -2
- package/dist/tsup/driver-test-suite/mod.js +575 -101
- package/dist/tsup/driver-test-suite/mod.js.map +1 -1
- package/dist/tsup/inspector/mod.cjs +8 -6
- package/dist/tsup/inspector/mod.cjs.map +1 -1
- package/dist/tsup/inspector/mod.js +10 -8
- package/dist/tsup/mod.cjs +12 -9
- package/dist/tsup/mod.cjs.map +1 -1
- package/dist/tsup/mod.d.cts +52 -7
- package/dist/tsup/mod.d.ts +52 -7
- package/dist/tsup/mod.js +18 -15
- package/dist/tsup/test/mod.cjs +12 -10
- package/dist/tsup/test/mod.cjs.map +1 -1
- package/dist/tsup/test/mod.d.cts +1 -1
- package/dist/tsup/test/mod.d.ts +1 -1
- package/dist/tsup/test/mod.js +11 -9
- package/dist/tsup/utils.cjs +5 -3
- package/dist/tsup/utils.cjs.map +1 -1
- package/dist/tsup/utils.d.cts +18 -1
- package/dist/tsup/utils.d.ts +18 -1
- package/dist/tsup/utils.js +4 -2
- package/package.json +4 -4
- package/src/actor/errors.ts +1 -1
- package/src/actor/mod.ts +5 -3
- package/src/actor/router-endpoints.ts +11 -33
- package/src/actor/router.ts +11 -9
- package/src/client/actor-conn.ts +9 -8
- package/src/client/actor-handle.ts +0 -1
- package/src/client/client.ts +1 -1
- package/src/client/mod.ts +1 -1
- package/src/client/raw-utils.ts +2 -2
- package/src/client/utils.ts +1 -1
- package/src/common/actor-router-consts.ts +38 -0
- package/src/driver-helpers/mod.ts +1 -1
- package/src/driver-test-suite/mod.ts +1 -1
- package/src/driver-test-suite/test-inline-client-driver.ts +588 -0
- package/src/driver-test-suite/tests/actor-error-handling.ts +4 -12
- package/src/driver-test-suite/tests/actor-inspector.ts +2 -1
- package/src/driver-test-suite/utils.ts +16 -10
- package/src/drivers/engine/actor-driver.ts +18 -17
- package/src/drivers/file-system/global-state.ts +3 -1
- package/src/drivers/file-system/manager.ts +16 -21
- package/src/manager/driver.ts +1 -1
- package/src/manager/protocol/query.ts +1 -1
- package/src/manager/router.ts +373 -5
- package/src/registry/mod.ts +36 -35
- package/src/registry/run-config.ts +16 -1
- package/src/registry/serve.ts +8 -3
- package/src/remote-manager-driver/actor-http-client.ts +3 -1
- package/src/remote-manager-driver/actor-websocket-client.ts +4 -3
- package/src/remote-manager-driver/api-utils.ts +4 -1
- package/src/remote-manager-driver/mod.ts +4 -6
- package/src/utils.ts +53 -0
- package/dist/tsup/chunk-4R73YDN3.cjs +0 -20
- package/dist/tsup/chunk-6LJT3QRL.cjs.map +0 -1
- package/dist/tsup/chunk-GICQ3YCU.cjs +0 -1792
- package/dist/tsup/chunk-GICQ3YCU.cjs.map +0 -1
- package/dist/tsup/chunk-H26RP6GD.js.map +0 -1
- package/dist/tsup/chunk-HLLF4B4Q.js +0 -1792
- package/dist/tsup/chunk-HLLF4B4Q.js.map +0 -1
- package/dist/tsup/chunk-LWNKVZG5.cjs.map +0 -1
- package/dist/tsup/chunk-NFU2BBT5.js.map +0 -1
- package/dist/tsup/chunk-TQ62L3X7.js +0 -325
- package/dist/tsup/chunk-TQ62L3X7.js.map +0 -1
- package/dist/tsup/chunk-VO7ZRVVD.cjs +0 -6293
- package/dist/tsup/chunk-VO7ZRVVD.cjs.map +0 -1
- package/dist/tsup/chunk-WHBPJNGW.cjs +0 -325
- package/dist/tsup/chunk-WHBPJNGW.cjs.map +0 -1
- package/dist/tsup/chunk-XJQHKJ4P.js.map +0 -1
- package/dist/tsup/router-endpoints-BTe_Rsdn.d.cts +0 -65
- package/dist/tsup/router-endpoints-CBSrKHmo.d.ts +0 -65
- /package/dist/tsup/{chunk-3F2YSRJL.js.map → chunk-G75SVQON.js.map} +0 -0
- /package/dist/tsup/{chunk-QK72M5JB.js.map → chunk-VCEHU56K.js.map} +0 -0
- /package/dist/tsup/{chunk-LV2S3OU3.js.map → chunk-WC2PSJWN.js.map} +0 -0
|
@@ -1,33 +1,41 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { newObj[key] = obj[key]; } } } newObj.default = obj; return newObj; } } function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } }
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var _chunk6P6RA47Ncjs = require('../chunk-6P6RA47N.cjs');
|
|
4
4
|
|
|
5
5
|
|
|
6
|
-
var _chunk4R73YDN3cjs = require('../chunk-4R73YDN3.cjs');
|
|
7
6
|
|
|
7
|
+
var _chunkTWGATZ3Xcjs = require('../chunk-TWGATZ3X.cjs');
|
|
8
8
|
|
|
9
9
|
|
|
10
|
-
var _chunkVO7ZRVVDcjs = require('../chunk-VO7ZRVVD.cjs');
|
|
11
10
|
|
|
11
|
+
var _chunkKUPQZYUQcjs = require('../chunk-KUPQZYUQ.cjs');
|
|
12
12
|
|
|
13
13
|
|
|
14
|
-
var
|
|
15
|
-
require('../chunk-QNNXFOQV.cjs');
|
|
14
|
+
var _chunkUTI5NCEScjs = require('../chunk-UTI5NCES.cjs');
|
|
16
15
|
|
|
17
16
|
|
|
18
|
-
var _chunkWHBPJNGWcjs = require('../chunk-WHBPJNGW.cjs');
|
|
19
17
|
|
|
18
|
+
var _chunkUFWAK3X2cjs = require('../chunk-UFWAK3X2.cjs');
|
|
19
|
+
require('../chunk-DIAYNQTE.cjs');
|
|
20
20
|
|
|
21
21
|
|
|
22
|
-
var
|
|
22
|
+
var _chunkKG3C7MKRcjs = require('../chunk-KG3C7MKR.cjs');
|
|
23
23
|
|
|
24
24
|
|
|
25
|
-
var
|
|
26
|
-
require('../chunk-6LJT3QRL.cjs');
|
|
25
|
+
var _chunkNTCUGYSDcjs = require('../chunk-NTCUGYSD.cjs');
|
|
27
26
|
|
|
28
27
|
|
|
29
28
|
|
|
30
|
-
|
|
29
|
+
|
|
30
|
+
var _chunkTCUI5JFEcjs = require('../chunk-TCUI5JFE.cjs');
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
var _chunkMRRT2CZDcjs = require('../chunk-MRRT2CZD.cjs');
|
|
34
|
+
require('../chunk-5JBFVV4C.cjs');
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
var _chunk5QGQK44Lcjs = require('../chunk-5QGQK44L.cjs');
|
|
31
39
|
|
|
32
40
|
// src/driver-test-suite/mod.ts
|
|
33
41
|
var _nodeserver = require('@hono/node-server');
|
|
@@ -38,36 +46,509 @@ var _vitest = require('vitest');
|
|
|
38
46
|
|
|
39
47
|
// src/driver-test-suite/log.ts
|
|
40
48
|
function logger() {
|
|
41
|
-
return
|
|
49
|
+
return _chunkMRRT2CZDcjs.getLogger.call(void 0, "test-suite");
|
|
42
50
|
}
|
|
43
51
|
|
|
44
52
|
// src/driver-test-suite/tests/action-features.ts
|
|
45
53
|
|
|
46
54
|
|
|
47
55
|
// src/driver-test-suite/utils.ts
|
|
48
|
-
var _path = require('path');
|
|
49
56
|
|
|
57
|
+
|
|
58
|
+
|
|
59
|
+
// src/driver-test-suite/test-inline-client-driver.ts
|
|
60
|
+
var _cborx = require('cbor-x'); var cbor = _interopRequireWildcard(_cborx);
|
|
61
|
+
function createTestInlineClientDriver(endpoint, encoding, transport) {
|
|
62
|
+
return {
|
|
63
|
+
getForId(input) {
|
|
64
|
+
return makeInlineRequest(endpoint, encoding, transport, "getForId", [
|
|
65
|
+
input
|
|
66
|
+
]);
|
|
67
|
+
},
|
|
68
|
+
getWithKey(input) {
|
|
69
|
+
return makeInlineRequest(endpoint, encoding, transport, "getWithKey", [
|
|
70
|
+
input
|
|
71
|
+
]);
|
|
72
|
+
},
|
|
73
|
+
getOrCreateWithKey(input) {
|
|
74
|
+
return makeInlineRequest(
|
|
75
|
+
endpoint,
|
|
76
|
+
encoding,
|
|
77
|
+
transport,
|
|
78
|
+
"getOrCreateWithKey",
|
|
79
|
+
[input]
|
|
80
|
+
);
|
|
81
|
+
},
|
|
82
|
+
createActor(input) {
|
|
83
|
+
return makeInlineRequest(endpoint, encoding, transport, "createActor", [
|
|
84
|
+
input
|
|
85
|
+
]);
|
|
86
|
+
},
|
|
87
|
+
async sendRequest(actorId, actorRequest) {
|
|
88
|
+
var _a;
|
|
89
|
+
const oldUrl = new URL(actorRequest.url);
|
|
90
|
+
const normalizedPath = oldUrl.pathname.startsWith("/") ? oldUrl.pathname.slice(1) : oldUrl.pathname;
|
|
91
|
+
const pathWithQuery = normalizedPath + oldUrl.search;
|
|
92
|
+
logger().debug({
|
|
93
|
+
msg: "sending raw http request via test inline driver",
|
|
94
|
+
actorId,
|
|
95
|
+
encoding,
|
|
96
|
+
path: pathWithQuery
|
|
97
|
+
});
|
|
98
|
+
const url = `${endpoint}/.test/inline-driver/send-request/${pathWithQuery}`;
|
|
99
|
+
logger().debug({ msg: "rewriting http url", from: oldUrl, to: url });
|
|
100
|
+
const headers = new Headers(actorRequest.headers);
|
|
101
|
+
headers.set(_chunkTCUI5JFEcjs.HEADER_ACTOR_ID, actorId);
|
|
102
|
+
const response = await fetch(
|
|
103
|
+
new Request(url, {
|
|
104
|
+
method: actorRequest.method,
|
|
105
|
+
headers,
|
|
106
|
+
body: actorRequest.body,
|
|
107
|
+
signal: actorRequest.signal
|
|
108
|
+
})
|
|
109
|
+
);
|
|
110
|
+
if (!response.ok && ((_a = response.headers.get("content-type")) == null ? void 0 : _a.includes("application/json"))) {
|
|
111
|
+
try {
|
|
112
|
+
const clonedResponse = response.clone();
|
|
113
|
+
const errorData = await clonedResponse.json();
|
|
114
|
+
if (errorData.error) {
|
|
115
|
+
if (typeof errorData.error === "object") {
|
|
116
|
+
throw new (0, _chunkUFWAK3X2cjs.ActorError)(
|
|
117
|
+
errorData.error.code,
|
|
118
|
+
errorData.error.message,
|
|
119
|
+
errorData.error.metadata
|
|
120
|
+
);
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
} catch (e) {
|
|
124
|
+
if (!(e instanceof _chunkUFWAK3X2cjs.ActorError)) {
|
|
125
|
+
return response;
|
|
126
|
+
}
|
|
127
|
+
throw e;
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
return response;
|
|
131
|
+
},
|
|
132
|
+
async openWebSocket(path, actorId, encoding2, params) {
|
|
133
|
+
const WebSocket2 = await _chunkKG3C7MKRcjs.importWebSocket.call(void 0, );
|
|
134
|
+
const normalizedPath = path.startsWith("/") ? path.slice(1) : path;
|
|
135
|
+
logger().debug({
|
|
136
|
+
msg: "creating websocket connection via test inline driver"
|
|
137
|
+
});
|
|
138
|
+
const wsUrl = new URL(
|
|
139
|
+
`${endpoint}/.test/inline-driver/connect-websocket/ws`
|
|
140
|
+
);
|
|
141
|
+
wsUrl.searchParams.set("path", normalizedPath);
|
|
142
|
+
wsUrl.searchParams.set("actorId", actorId);
|
|
143
|
+
if (params !== void 0)
|
|
144
|
+
wsUrl.searchParams.set("params", JSON.stringify(params));
|
|
145
|
+
wsUrl.searchParams.set("encodingKind", encoding2);
|
|
146
|
+
const wsProtocol = wsUrl.protocol === "https:" ? "wss:" : "ws:";
|
|
147
|
+
const finalWsUrl = `${wsProtocol}//${wsUrl.host}${wsUrl.pathname}${wsUrl.search}`;
|
|
148
|
+
logger().debug({ msg: "connecting to websocket", url: finalWsUrl });
|
|
149
|
+
const ws = new WebSocket2(finalWsUrl, [
|
|
150
|
+
// HACK: See packages/drivers/cloudflare-workers/src/websocket.ts
|
|
151
|
+
"rivetkit"
|
|
152
|
+
]);
|
|
153
|
+
return ws;
|
|
154
|
+
},
|
|
155
|
+
async proxyRequest(c, actorRequest, actorId) {
|
|
156
|
+
return await this.sendRequest(actorId, actorRequest);
|
|
157
|
+
},
|
|
158
|
+
proxyWebSocket(_c, _path, _actorId, _encoding, _params, _authData) {
|
|
159
|
+
throw "UNIMPLEMENTED";
|
|
160
|
+
},
|
|
161
|
+
displayInformation() {
|
|
162
|
+
return { name: "Test Inline", properties: {} };
|
|
163
|
+
}
|
|
164
|
+
// action: async <Args extends Array<unknown> = unknown[], Response = unknown>(
|
|
165
|
+
// _c: HonoContext | undefined,
|
|
166
|
+
// actorQuery: ActorQuery,
|
|
167
|
+
// encoding: Encoding,
|
|
168
|
+
// params: unknown,
|
|
169
|
+
// name: string,
|
|
170
|
+
// args: Args,
|
|
171
|
+
// ): Promise<Response> => {
|
|
172
|
+
// return makeInlineRequest<Response>(
|
|
173
|
+
// endpoint,
|
|
174
|
+
// encoding,
|
|
175
|
+
// transport,
|
|
176
|
+
// "action",
|
|
177
|
+
// [undefined, actorQuery, encoding, params, name, args],
|
|
178
|
+
// );
|
|
179
|
+
// },
|
|
180
|
+
//
|
|
181
|
+
// resolveActorId: async (
|
|
182
|
+
// _c: HonoContext | undefined,
|
|
183
|
+
// actorQuery: ActorQuery,
|
|
184
|
+
// encodingKind: Encoding,
|
|
185
|
+
// params: unknown,
|
|
186
|
+
// ): Promise<string> => {
|
|
187
|
+
// return makeInlineRequest<string>(
|
|
188
|
+
// endpoint,
|
|
189
|
+
// encodingKind,
|
|
190
|
+
// transport,
|
|
191
|
+
// "resolveActorId",
|
|
192
|
+
// [undefined, actorQuery, encodingKind, params],
|
|
193
|
+
// );
|
|
194
|
+
// },
|
|
195
|
+
//
|
|
196
|
+
// connectWebSocket: async (
|
|
197
|
+
// _c: HonoContext | undefined,
|
|
198
|
+
// actorQuery: ActorQuery,
|
|
199
|
+
// encodingKind: Encoding,
|
|
200
|
+
// params: unknown,
|
|
201
|
+
// ): Promise<WebSocket> => {
|
|
202
|
+
// const WebSocket = await importWebSocket();
|
|
203
|
+
//
|
|
204
|
+
// logger().debug({
|
|
205
|
+
// msg: "creating websocket connection via test inline driver",
|
|
206
|
+
// actorQuery,
|
|
207
|
+
// encodingKind,
|
|
208
|
+
// });
|
|
209
|
+
//
|
|
210
|
+
// // Create WebSocket connection to the test endpoint
|
|
211
|
+
// const wsUrl = new URL(
|
|
212
|
+
// `${endpoint}/registry/.test/inline-driver/connect-websocket`,
|
|
213
|
+
// );
|
|
214
|
+
// wsUrl.searchParams.set("actorQuery", JSON.stringify(actorQuery));
|
|
215
|
+
// if (params !== undefined)
|
|
216
|
+
// wsUrl.searchParams.set("params", JSON.stringify(params));
|
|
217
|
+
// wsUrl.searchParams.set("encodingKind", encodingKind);
|
|
218
|
+
//
|
|
219
|
+
// // Convert http/https to ws/wss
|
|
220
|
+
// const wsProtocol = wsUrl.protocol === "https:" ? "wss:" : "ws:";
|
|
221
|
+
// const finalWsUrl = `${wsProtocol}//${wsUrl.host}${wsUrl.pathname}${wsUrl.search}`;
|
|
222
|
+
//
|
|
223
|
+
// logger().debug({ msg: "connecting to websocket", url: finalWsUrl });
|
|
224
|
+
//
|
|
225
|
+
// // Create and return the WebSocket
|
|
226
|
+
// // Node & browser WebSocket types are incompatible
|
|
227
|
+
// const ws = new WebSocket(finalWsUrl, [
|
|
228
|
+
// // HACK: See packages/drivers/cloudflare-workers/src/websocket.ts
|
|
229
|
+
// "rivetkit",
|
|
230
|
+
// ]) as any;
|
|
231
|
+
//
|
|
232
|
+
// return ws;
|
|
233
|
+
// },
|
|
234
|
+
//
|
|
235
|
+
// connectSse: async (
|
|
236
|
+
// _c: HonoContext | undefined,
|
|
237
|
+
// actorQuery: ActorQuery,
|
|
238
|
+
// encodingKind: Encoding,
|
|
239
|
+
// params: unknown,
|
|
240
|
+
// ): Promise<UniversalEventSource> => {
|
|
241
|
+
// logger().debug({
|
|
242
|
+
// msg: "creating sse connection via test inline driver",
|
|
243
|
+
// actorQuery,
|
|
244
|
+
// encodingKind,
|
|
245
|
+
// params,
|
|
246
|
+
// });
|
|
247
|
+
//
|
|
248
|
+
// // Dynamically import EventSource if needed
|
|
249
|
+
// const EventSourceImport = await import("eventsource");
|
|
250
|
+
// // Handle both ES modules (default) and CommonJS export patterns
|
|
251
|
+
// const EventSourceConstructor =
|
|
252
|
+
// (EventSourceImport as any).default || EventSourceImport;
|
|
253
|
+
//
|
|
254
|
+
// // Encode parameters for the URL
|
|
255
|
+
// const actorQueryParam = encodeURIComponent(JSON.stringify(actorQuery));
|
|
256
|
+
// const encodingParam = encodeURIComponent(encodingKind);
|
|
257
|
+
// const paramsParam = params
|
|
258
|
+
// ? encodeURIComponent(JSON.stringify(params))
|
|
259
|
+
// : null;
|
|
260
|
+
//
|
|
261
|
+
// // Create SSE connection URL
|
|
262
|
+
// const sseUrl = new URL(
|
|
263
|
+
// `${endpoint}/registry/.test/inline-driver/connect-sse`,
|
|
264
|
+
// );
|
|
265
|
+
// sseUrl.searchParams.set("actorQueryRaw", actorQueryParam);
|
|
266
|
+
// sseUrl.searchParams.set("encodingKind", encodingParam);
|
|
267
|
+
// if (paramsParam) {
|
|
268
|
+
// sseUrl.searchParams.set("params", paramsParam);
|
|
269
|
+
// }
|
|
270
|
+
//
|
|
271
|
+
// logger().debug({ msg: "connecting to sse", url: sseUrl.toString() });
|
|
272
|
+
//
|
|
273
|
+
// // Create and return the EventSource
|
|
274
|
+
// const eventSource = new EventSourceConstructor(sseUrl.toString());
|
|
275
|
+
//
|
|
276
|
+
// // Wait for the connection to be established before returning
|
|
277
|
+
// await new Promise<void>((resolve, reject) => {
|
|
278
|
+
// eventSource.onopen = () => {
|
|
279
|
+
// logger().debug({ msg: "sse connection established" });
|
|
280
|
+
// resolve();
|
|
281
|
+
// };
|
|
282
|
+
//
|
|
283
|
+
// eventSource.onerror = (event: Event) => {
|
|
284
|
+
// logger().error({ msg: "sse connection failed", event });
|
|
285
|
+
// reject(new Error("Failed to establish SSE connection"));
|
|
286
|
+
// };
|
|
287
|
+
//
|
|
288
|
+
// // Set a timeout in case the connection never establishes
|
|
289
|
+
// setTimeout(() => {
|
|
290
|
+
// if (eventSource.readyState !== EventSourceConstructor.OPEN) {
|
|
291
|
+
// reject(new Error("SSE connection timed out"));
|
|
292
|
+
// }
|
|
293
|
+
// }, 10000); // 10 second timeout
|
|
294
|
+
// });
|
|
295
|
+
//
|
|
296
|
+
// return eventSource as UniversalEventSource;
|
|
297
|
+
// },
|
|
298
|
+
//
|
|
299
|
+
// sendHttpMessage: async (
|
|
300
|
+
// _c: HonoContext | undefined,
|
|
301
|
+
// actorId: string,
|
|
302
|
+
// encoding: Encoding,
|
|
303
|
+
// connectionId: string,
|
|
304
|
+
// connectionToken: string,
|
|
305
|
+
// message: protocol.ToServer,
|
|
306
|
+
// ): Promise<void> => {
|
|
307
|
+
// logger().debug({
|
|
308
|
+
// msg: "sending http message via test inline driver",
|
|
309
|
+
// actorId,
|
|
310
|
+
// encoding,
|
|
311
|
+
// connectionId,
|
|
312
|
+
// transport,
|
|
313
|
+
// });
|
|
314
|
+
//
|
|
315
|
+
// const result = await fetch(
|
|
316
|
+
// `${endpoint}/registry/.test/inline-driver/call`,
|
|
317
|
+
// {
|
|
318
|
+
// method: "POST",
|
|
319
|
+
// headers: {
|
|
320
|
+
// "Content-Type": "application/json",
|
|
321
|
+
// },
|
|
322
|
+
// body: JSON.stringify({
|
|
323
|
+
// encoding,
|
|
324
|
+
// transport,
|
|
325
|
+
// method: "sendHttpMessage",
|
|
326
|
+
// args: [
|
|
327
|
+
// undefined,
|
|
328
|
+
// actorId,
|
|
329
|
+
// encoding,
|
|
330
|
+
// connectionId,
|
|
331
|
+
// connectionToken,
|
|
332
|
+
// message,
|
|
333
|
+
// ],
|
|
334
|
+
// } satisfies TestInlineDriverCallRequest),
|
|
335
|
+
// },
|
|
336
|
+
// );
|
|
337
|
+
//
|
|
338
|
+
// if (!result.ok) {
|
|
339
|
+
// throw new Error(`Failed to send HTTP message: ${result.statusText}`);
|
|
340
|
+
// }
|
|
341
|
+
//
|
|
342
|
+
// // Discard response
|
|
343
|
+
// await result.body?.cancel();
|
|
344
|
+
// },
|
|
345
|
+
//
|
|
346
|
+
// rawHttpRequest: async (
|
|
347
|
+
// _c: HonoContext | undefined,
|
|
348
|
+
// actorQuery: ActorQuery,
|
|
349
|
+
// encoding: Encoding,
|
|
350
|
+
// params: unknown,
|
|
351
|
+
// path: string,
|
|
352
|
+
// init: RequestInit,
|
|
353
|
+
// ): Promise<Response> => {
|
|
354
|
+
// // Normalize path to match other drivers
|
|
355
|
+
// const normalizedPath = path.startsWith("/") ? path.slice(1) : path;
|
|
356
|
+
//
|
|
357
|
+
// logger().debug({
|
|
358
|
+
// msg: "sending raw http request via test inline driver",
|
|
359
|
+
// actorQuery,
|
|
360
|
+
// encoding,
|
|
361
|
+
// path: normalizedPath,
|
|
362
|
+
// });
|
|
363
|
+
//
|
|
364
|
+
// // Use the dedicated raw HTTP endpoint
|
|
365
|
+
// const url = `${endpoint}/registry/.test/inline-driver/raw-http/${normalizedPath}`;
|
|
366
|
+
//
|
|
367
|
+
// logger().debug({ msg: "rewriting http url", from: path, to: url });
|
|
368
|
+
//
|
|
369
|
+
// // Merge headers with our metadata
|
|
370
|
+
// const headers = new Headers(init.headers);
|
|
371
|
+
// headers.set(HEADER_ACTOR_QUERY, JSON.stringify(actorQuery));
|
|
372
|
+
// headers.set(HEADER_ENCODING, encoding);
|
|
373
|
+
// if (params !== undefined) {
|
|
374
|
+
// headers.set(HEADER_CONN_PARAMS, JSON.stringify(params));
|
|
375
|
+
// }
|
|
376
|
+
//
|
|
377
|
+
// // Forward the request directly
|
|
378
|
+
// const response = await fetch(url, {
|
|
379
|
+
// ...init,
|
|
380
|
+
// headers,
|
|
381
|
+
// });
|
|
382
|
+
//
|
|
383
|
+
// // Check if it's an error response from our handler
|
|
384
|
+
// if (
|
|
385
|
+
// !response.ok &&
|
|
386
|
+
// response.headers.get("content-type")?.includes("application/json")
|
|
387
|
+
// ) {
|
|
388
|
+
// try {
|
|
389
|
+
// // Clone the response to avoid consuming the body
|
|
390
|
+
// const clonedResponse = response.clone();
|
|
391
|
+
// const errorData = (await clonedResponse.json()) as any;
|
|
392
|
+
// if (errorData.error) {
|
|
393
|
+
// // Handle both error formats:
|
|
394
|
+
// // 1. { error: { code, message, metadata } } - structured format
|
|
395
|
+
// // 2. { error: "message" } - simple string format (from custom onFetch handlers)
|
|
396
|
+
// if (typeof errorData.error === "object") {
|
|
397
|
+
// throw new ClientActorError(
|
|
398
|
+
// errorData.error.code,
|
|
399
|
+
// errorData.error.message,
|
|
400
|
+
// errorData.error.metadata,
|
|
401
|
+
// );
|
|
402
|
+
// }
|
|
403
|
+
// // For simple string errors, just return the response as-is
|
|
404
|
+
// // This allows custom onFetch handlers to return their own error formats
|
|
405
|
+
// }
|
|
406
|
+
// } catch (e) {
|
|
407
|
+
// // If it's not our error format, just return the response as-is
|
|
408
|
+
// if (!(e instanceof ClientActorError)) {
|
|
409
|
+
// return response;
|
|
410
|
+
// }
|
|
411
|
+
// throw e;
|
|
412
|
+
// }
|
|
413
|
+
// }
|
|
414
|
+
//
|
|
415
|
+
// return response;
|
|
416
|
+
// },
|
|
417
|
+
//
|
|
418
|
+
// rawWebSocket: async (
|
|
419
|
+
// _c: HonoContext | undefined,
|
|
420
|
+
// actorQuery: ActorQuery,
|
|
421
|
+
// encoding: Encoding,
|
|
422
|
+
// params: unknown,
|
|
423
|
+
// path: string,
|
|
424
|
+
// protocols: string | string[] | undefined,
|
|
425
|
+
// ): Promise<WebSocket> => {
|
|
426
|
+
// logger().debug({ msg: "test inline driver rawWebSocket called" });
|
|
427
|
+
// const WebSocket = await importWebSocket();
|
|
428
|
+
//
|
|
429
|
+
// // Normalize path to match other drivers
|
|
430
|
+
// const normalizedPath = path.startsWith("/") ? path.slice(1) : path;
|
|
431
|
+
//
|
|
432
|
+
// logger().debug({
|
|
433
|
+
// msg: "creating raw websocket connection via test inline driver",
|
|
434
|
+
// actorQuery,
|
|
435
|
+
// encoding,
|
|
436
|
+
// path: normalizedPath,
|
|
437
|
+
// protocols,
|
|
438
|
+
// });
|
|
439
|
+
//
|
|
440
|
+
// // Create WebSocket connection to the test endpoint
|
|
441
|
+
// const wsUrl = new URL(
|
|
442
|
+
// `${endpoint}/registry/.test/inline-driver/raw-websocket`,
|
|
443
|
+
// );
|
|
444
|
+
// wsUrl.searchParams.set("actorQuery", JSON.stringify(actorQuery));
|
|
445
|
+
// if (params !== undefined)
|
|
446
|
+
// wsUrl.searchParams.set("params", JSON.stringify(params));
|
|
447
|
+
// wsUrl.searchParams.set("encodingKind", encoding);
|
|
448
|
+
// wsUrl.searchParams.set("path", normalizedPath);
|
|
449
|
+
// if (protocols !== undefined)
|
|
450
|
+
// wsUrl.searchParams.set("protocols", JSON.stringify(protocols));
|
|
451
|
+
//
|
|
452
|
+
// // Convert http/https to ws/wss
|
|
453
|
+
// const wsProtocol = wsUrl.protocol === "https:" ? "wss:" : "ws:";
|
|
454
|
+
// const finalWsUrl = `${wsProtocol}//${wsUrl.host}${wsUrl.pathname}${wsUrl.search}`;
|
|
455
|
+
//
|
|
456
|
+
// logger().debug({ msg: "connecting to raw websocket", url: finalWsUrl });
|
|
457
|
+
//
|
|
458
|
+
// logger().debug({
|
|
459
|
+
// msg: "rewriting websocket url",
|
|
460
|
+
// from: path,
|
|
461
|
+
// to: finalWsUrl,
|
|
462
|
+
// });
|
|
463
|
+
//
|
|
464
|
+
// // Create and return the WebSocket
|
|
465
|
+
// // Node & browser WebSocket types are incompatible
|
|
466
|
+
// const ws = new WebSocket(finalWsUrl, [
|
|
467
|
+
// // HACK: See packages/drivers/cloudflare-workers/src/websocket.ts
|
|
468
|
+
// "rivetkit",
|
|
469
|
+
// ]) as any;
|
|
470
|
+
//
|
|
471
|
+
// logger().debug({
|
|
472
|
+
// msg: "test inline driver created websocket",
|
|
473
|
+
// readyState: ws.readyState,
|
|
474
|
+
// url: ws.url,
|
|
475
|
+
// });
|
|
476
|
+
//
|
|
477
|
+
// return ws;
|
|
478
|
+
// },
|
|
479
|
+
};
|
|
480
|
+
}
|
|
481
|
+
async function makeInlineRequest(endpoint, encoding, transport, method, args) {
|
|
482
|
+
logger().debug({
|
|
483
|
+
msg: "sending inline request",
|
|
484
|
+
encoding,
|
|
485
|
+
transport,
|
|
486
|
+
method,
|
|
487
|
+
args
|
|
488
|
+
});
|
|
489
|
+
const response = await fetch(`${endpoint}/.test/inline-driver/call`, {
|
|
490
|
+
method: "POST",
|
|
491
|
+
headers: {
|
|
492
|
+
"Content-Type": "application/json"
|
|
493
|
+
},
|
|
494
|
+
body: cbor.encode({
|
|
495
|
+
encoding,
|
|
496
|
+
transport,
|
|
497
|
+
method,
|
|
498
|
+
args
|
|
499
|
+
})
|
|
500
|
+
});
|
|
501
|
+
if (!response.ok) {
|
|
502
|
+
throw new Error(`Failed to call inline ${method}: ${response.statusText}`);
|
|
503
|
+
}
|
|
504
|
+
const buffer = await response.arrayBuffer();
|
|
505
|
+
const callResponse = cbor.decode(
|
|
506
|
+
new Uint8Array(buffer)
|
|
507
|
+
);
|
|
508
|
+
if ("ok" in callResponse) {
|
|
509
|
+
return callResponse.ok;
|
|
510
|
+
} else if ("err" in callResponse) {
|
|
511
|
+
throw new (0, _chunkUFWAK3X2cjs.ActorError)(
|
|
512
|
+
callResponse.err.group,
|
|
513
|
+
callResponse.err.code,
|
|
514
|
+
callResponse.err.message,
|
|
515
|
+
callResponse.err.metadata
|
|
516
|
+
);
|
|
517
|
+
} else {
|
|
518
|
+
_chunkTCUI5JFEcjs.assertUnreachable.call(void 0, callResponse);
|
|
519
|
+
}
|
|
520
|
+
}
|
|
521
|
+
|
|
522
|
+
// src/driver-test-suite/utils.ts
|
|
50
523
|
var FAKE_TIME = /* @__PURE__ */ new Date("2024-01-01T00:00:00.000Z");
|
|
51
524
|
async function setupDriverTest(c, driverTestConfig) {
|
|
52
525
|
if (!driverTestConfig.useRealTimers) {
|
|
53
526
|
_vitest.vi.useFakeTimers();
|
|
54
527
|
_vitest.vi.setSystemTime(FAKE_TIME);
|
|
55
528
|
}
|
|
56
|
-
const
|
|
57
|
-
const { endpoint, namespace, runnerName, cleanup } = await driverTestConfig.start(projectPath);
|
|
529
|
+
const { endpoint, namespace, runnerName, cleanup } = await driverTestConfig.start();
|
|
58
530
|
c.onTestFinished(cleanup);
|
|
59
531
|
let client;
|
|
60
532
|
if (driverTestConfig.clientType === "http") {
|
|
61
|
-
client =
|
|
533
|
+
client = _chunkUTI5NCEScjs.createClient.call(void 0, {
|
|
62
534
|
endpoint,
|
|
63
535
|
namespace,
|
|
64
536
|
runnerName,
|
|
65
537
|
transport: driverTestConfig.transport
|
|
66
538
|
});
|
|
67
539
|
} else if (driverTestConfig.clientType === "inline") {
|
|
68
|
-
|
|
540
|
+
const managerDriver = createTestInlineClientDriver(
|
|
541
|
+
endpoint,
|
|
542
|
+
"bare",
|
|
543
|
+
_nullishCoalesce(driverTestConfig.transport, () => ( "websocket"))
|
|
544
|
+
);
|
|
545
|
+
_invariant2.default.call(void 0, driverTestConfig.transport, "missing transport");
|
|
546
|
+
const runConfig = _chunkNTCUGYSDcjs.RunConfigSchema.parse({
|
|
547
|
+
transport: driverTestConfig.transport
|
|
548
|
+
});
|
|
549
|
+
client = _chunkUFWAK3X2cjs.createClientWithDriver.call(void 0, managerDriver, runConfig);
|
|
69
550
|
} else {
|
|
70
|
-
|
|
551
|
+
_chunkTCUI5JFEcjs.assertUnreachable.call(void 0, driverTestConfig.clientType);
|
|
71
552
|
}
|
|
72
553
|
if (!driverTestConfig.HACK_skipCleanupNet) {
|
|
73
554
|
c.onTestFinished(async () => await client.dispose());
|
|
@@ -79,7 +560,7 @@ async function setupDriverTest(c, driverTestConfig) {
|
|
|
79
560
|
}
|
|
80
561
|
async function waitFor(driverTestConfig, ms) {
|
|
81
562
|
if (driverTestConfig.useRealTimers) {
|
|
82
|
-
return new Promise((
|
|
563
|
+
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
83
564
|
} else {
|
|
84
565
|
_vitest.vi.advanceTimersByTime(ms);
|
|
85
566
|
return Promise.resolve();
|
|
@@ -215,11 +696,11 @@ function runActorConnTests(driverTestConfig) {
|
|
|
215
696
|
const handle = client.counter.getOrCreate(["test-mixed-rpc-ws"]);
|
|
216
697
|
const connection = handle.connect();
|
|
217
698
|
const receivedEvents = [];
|
|
218
|
-
const receivedEventsPromise = new Promise((
|
|
699
|
+
const receivedEventsPromise = new Promise((resolve) => {
|
|
219
700
|
connection.on("newCount", (count) => {
|
|
220
701
|
receivedEvents.push(count);
|
|
221
702
|
if (receivedEvents.includes(1) && receivedEvents.includes(6) && receivedEvents.includes(9))
|
|
222
|
-
|
|
703
|
+
resolve(void 0);
|
|
223
704
|
});
|
|
224
705
|
});
|
|
225
706
|
await connection.increment(1);
|
|
@@ -598,7 +1079,7 @@ function runActorScheduleTests(driverTestConfig) {
|
|
|
598
1079
|
|
|
599
1080
|
// fixtures/driver-test-suite/sleep.ts
|
|
600
1081
|
var SLEEP_TIMEOUT = 500;
|
|
601
|
-
var sleep =
|
|
1082
|
+
var sleep = _chunkTWGATZ3Xcjs.actor.call(void 0, {
|
|
602
1083
|
state: { startCount: 0, sleepCount: 0 },
|
|
603
1084
|
onStart: (c) => {
|
|
604
1085
|
c.state.startCount += 1;
|
|
@@ -624,7 +1105,7 @@ var sleep = _chunkVO7ZRVVDcjs.actor.call(void 0, {
|
|
|
624
1105
|
sleepTimeout: SLEEP_TIMEOUT
|
|
625
1106
|
}
|
|
626
1107
|
});
|
|
627
|
-
var sleepWithLongRpc =
|
|
1108
|
+
var sleepWithLongRpc = _chunkTWGATZ3Xcjs.actor.call(void 0, {
|
|
628
1109
|
state: { startCount: 0, sleepCount: 0 },
|
|
629
1110
|
createVars: () => ({}),
|
|
630
1111
|
onStart: (c) => {
|
|
@@ -653,7 +1134,7 @@ var sleepWithLongRpc = _chunkVO7ZRVVDcjs.actor.call(void 0, {
|
|
|
653
1134
|
sleepTimeout: SLEEP_TIMEOUT
|
|
654
1135
|
}
|
|
655
1136
|
});
|
|
656
|
-
var sleepWithRawHttp =
|
|
1137
|
+
var sleepWithRawHttp = _chunkTWGATZ3Xcjs.actor.call(void 0, {
|
|
657
1138
|
state: { startCount: 0, sleepCount: 0, requestCount: 0 },
|
|
658
1139
|
onStart: (c) => {
|
|
659
1140
|
c.state.startCount += 1;
|
|
@@ -667,7 +1148,7 @@ var sleepWithRawHttp = _chunkVO7ZRVVDcjs.actor.call(void 0, {
|
|
|
667
1148
|
if (url.pathname === "/long-request") {
|
|
668
1149
|
const duration = parseInt(url.searchParams.get("duration") || "1000");
|
|
669
1150
|
c.log.info({ msg: "starting long fetch request", duration });
|
|
670
|
-
await new Promise((
|
|
1151
|
+
await new Promise((resolve) => setTimeout(resolve, duration));
|
|
671
1152
|
c.log.info("finished long fetch request");
|
|
672
1153
|
return new Response(JSON.stringify({ completed: true }), {
|
|
673
1154
|
headers: { "Content-Type": "application/json" }
|
|
@@ -688,7 +1169,7 @@ var sleepWithRawHttp = _chunkVO7ZRVVDcjs.actor.call(void 0, {
|
|
|
688
1169
|
sleepTimeout: SLEEP_TIMEOUT
|
|
689
1170
|
}
|
|
690
1171
|
});
|
|
691
|
-
var sleepWithRawWebSocket =
|
|
1172
|
+
var sleepWithRawWebSocket = _chunkTWGATZ3Xcjs.actor.call(void 0, {
|
|
692
1173
|
state: { startCount: 0, sleepCount: 0, connectionCount: 0 },
|
|
693
1174
|
onStart: (c) => {
|
|
694
1175
|
c.state.startCount += 1;
|
|
@@ -751,7 +1232,7 @@ var sleepWithRawWebSocket = _chunkVO7ZRVVDcjs.actor.call(void 0, {
|
|
|
751
1232
|
sleepTimeout: SLEEP_TIMEOUT
|
|
752
1233
|
}
|
|
753
1234
|
});
|
|
754
|
-
var sleepWithNoSleepOption =
|
|
1235
|
+
var sleepWithNoSleepOption = _chunkTWGATZ3Xcjs.actor.call(void 0, {
|
|
755
1236
|
state: { startCount: 0, sleepCount: 0 },
|
|
756
1237
|
onStart: (c) => {
|
|
757
1238
|
c.state.startCount += 1;
|
|
@@ -908,7 +1389,7 @@ function runActorSleepTests(driverTestConfig) {
|
|
|
908
1389
|
_vitest.expect.call(void 0, startCount).toBe(1);
|
|
909
1390
|
}
|
|
910
1391
|
const waitPromise = new Promise(
|
|
911
|
-
(
|
|
1392
|
+
(resolve) => sleepActor.once("waiting", resolve)
|
|
912
1393
|
);
|
|
913
1394
|
const longRunningPromise = sleepActor.longRunningRpc();
|
|
914
1395
|
await waitPromise;
|
|
@@ -941,32 +1422,32 @@ function runActorSleepTests(driverTestConfig) {
|
|
|
941
1422
|
_vitest.expect.call(void 0, startCount).toBe(1);
|
|
942
1423
|
}
|
|
943
1424
|
const ws = await sleepActor.websocket();
|
|
944
|
-
await new Promise((
|
|
945
|
-
ws.onopen = () =>
|
|
1425
|
+
await new Promise((resolve, reject) => {
|
|
1426
|
+
ws.onopen = () => resolve();
|
|
946
1427
|
ws.onerror = reject;
|
|
947
1428
|
});
|
|
948
|
-
await new Promise((
|
|
1429
|
+
await new Promise((resolve) => {
|
|
949
1430
|
ws.onmessage = (event) => {
|
|
950
1431
|
const data = JSON.parse(event.data);
|
|
951
1432
|
if (data.type === "connected") {
|
|
952
|
-
|
|
1433
|
+
resolve();
|
|
953
1434
|
}
|
|
954
1435
|
};
|
|
955
1436
|
});
|
|
956
1437
|
await waitFor(driverTestConfig, SLEEP_TIMEOUT + 100);
|
|
957
1438
|
ws.send(JSON.stringify({ type: "getCounts" }));
|
|
958
|
-
const counts = await new Promise((
|
|
1439
|
+
const counts = await new Promise((resolve) => {
|
|
959
1440
|
ws.onmessage = (event) => {
|
|
960
1441
|
const data = JSON.parse(event.data);
|
|
961
1442
|
if (data.type === "counts") {
|
|
962
|
-
|
|
1443
|
+
resolve(data);
|
|
963
1444
|
}
|
|
964
1445
|
};
|
|
965
1446
|
});
|
|
966
1447
|
_vitest.expect.call(void 0, counts.sleepCount).toBe(0);
|
|
967
1448
|
_vitest.expect.call(void 0, counts.startCount).toBe(1);
|
|
968
1449
|
ws.close();
|
|
969
|
-
await new Promise((
|
|
1450
|
+
await new Promise((resolve) => setTimeout(resolve, 100));
|
|
970
1451
|
await waitFor(driverTestConfig, SLEEP_TIMEOUT + 100);
|
|
971
1452
|
{
|
|
972
1453
|
const { startCount, sleepCount } = await sleepActor.getCounts();
|
|
@@ -1119,15 +1600,8 @@ function runActorErrorHandlingTests(driverTestConfig) {
|
|
|
1119
1600
|
await handle.throwInternalError();
|
|
1120
1601
|
_vitest.expect.call(void 0, true).toBe(false);
|
|
1121
1602
|
} catch (error) {
|
|
1122
|
-
|
|
1123
|
-
|
|
1124
|
-
_vitest.expect.call(void 0, error.message).toBe(_chunkSBHHJ6QScjs.INTERNAL_ERROR_DESCRIPTION);
|
|
1125
|
-
} else if (driverTestConfig.clientType === "inline") {
|
|
1126
|
-
_vitest.expect.call(void 0, error.code).toBe(_chunkSBHHJ6QScjs.INTERNAL_ERROR_CODE);
|
|
1127
|
-
_vitest.expect.call(void 0, error.message).toBe("This is an internal error");
|
|
1128
|
-
} else {
|
|
1129
|
-
_chunkGICQ3YCUcjs.assertUnreachable.call(void 0, driverTestConfig.clientType);
|
|
1130
|
-
}
|
|
1603
|
+
_vitest.expect.call(void 0, error.code).toBe(_chunk5QGQK44Lcjs.INTERNAL_ERROR_CODE);
|
|
1604
|
+
_vitest.expect.call(void 0, error.message).toBe(_chunk5QGQK44Lcjs.INTERNAL_ERROR_DESCRIPTION);
|
|
1131
1605
|
}
|
|
1132
1606
|
});
|
|
1133
1607
|
});
|
|
@@ -1465,11 +1939,11 @@ function runActorInlineClientTests(driverTestConfig) {
|
|
|
1465
1939
|
// src/driver-test-suite/tests/actor-inspector.ts
|
|
1466
1940
|
|
|
1467
1941
|
function runActorInspectorTests(driverTestConfig) {
|
|
1468
|
-
_vitest.describe.
|
|
1942
|
+
_vitest.describe.skip("Actor Inspector Tests", () => {
|
|
1469
1943
|
_vitest.describe.call(void 0, "Manager Inspector", () => {
|
|
1470
1944
|
_vitest.test.call(void 0, "should respond to ping", async (c) => {
|
|
1471
1945
|
const { endpoint } = await setupDriverTest(c, driverTestConfig);
|
|
1472
|
-
const http =
|
|
1946
|
+
const http = _chunkKUPQZYUQcjs.createManagerInspectorClient.call(void 0, `${endpoint}/inspect`, {
|
|
1473
1947
|
headers: {
|
|
1474
1948
|
Authorization: `Bearer token`
|
|
1475
1949
|
}
|
|
@@ -1483,7 +1957,7 @@ function runActorInspectorTests(driverTestConfig) {
|
|
|
1483
1957
|
const { client, endpoint } = await setupDriverTest(c, driverTestConfig);
|
|
1484
1958
|
await client.counter.create(["test-actor-1"]);
|
|
1485
1959
|
await client.counter.create(["test-actor-2"]);
|
|
1486
|
-
const http =
|
|
1960
|
+
const http = _chunkKUPQZYUQcjs.createManagerInspectorClient.call(void 0, `${endpoint}/inspect`, {
|
|
1487
1961
|
headers: {
|
|
1488
1962
|
Authorization: `Bearer token`
|
|
1489
1963
|
}
|
|
@@ -1506,7 +1980,7 @@ function runActorInspectorTests(driverTestConfig) {
|
|
|
1506
1980
|
const actorKey2 = ["test-cursor-2"];
|
|
1507
1981
|
await client.counter.create(actorKey1);
|
|
1508
1982
|
await client.counter.create(actorKey2);
|
|
1509
|
-
const http =
|
|
1983
|
+
const http = _chunkKUPQZYUQcjs.createManagerInspectorClient.call(void 0, `${endpoint}/inspect`, {
|
|
1510
1984
|
headers: {
|
|
1511
1985
|
Authorization: `Bearer token`
|
|
1512
1986
|
}
|
|
@@ -1531,7 +2005,7 @@ function runActorInspectorTests(driverTestConfig) {
|
|
|
1531
2005
|
});
|
|
1532
2006
|
_vitest.test.call(void 0, "should handle invalid limit parameter", async (c) => {
|
|
1533
2007
|
const { endpoint } = await setupDriverTest(c, driverTestConfig);
|
|
1534
|
-
const http =
|
|
2008
|
+
const http = _chunkKUPQZYUQcjs.createManagerInspectorClient.call(void 0, `${endpoint}/inspect`, {
|
|
1535
2009
|
headers: {
|
|
1536
2010
|
Authorization: `Bearer token`
|
|
1537
2011
|
}
|
|
@@ -1543,7 +2017,7 @@ function runActorInspectorTests(driverTestConfig) {
|
|
|
1543
2017
|
});
|
|
1544
2018
|
_vitest.test.call(void 0, "should create a new actor", async (c) => {
|
|
1545
2019
|
const { endpoint } = await setupDriverTest(c, driverTestConfig);
|
|
1546
|
-
const http =
|
|
2020
|
+
const http = _chunkKUPQZYUQcjs.createManagerInspectorClient.call(void 0, `${endpoint}/inspect`, {
|
|
1547
2021
|
headers: {
|
|
1548
2022
|
Authorization: `Bearer token`
|
|
1549
2023
|
}
|
|
@@ -1567,7 +2041,7 @@ function runActorInspectorTests(driverTestConfig) {
|
|
|
1567
2041
|
});
|
|
1568
2042
|
_vitest.test.call(void 0, "should get builds", async (c) => {
|
|
1569
2043
|
const { endpoint } = await setupDriverTest(c, driverTestConfig);
|
|
1570
|
-
const http =
|
|
2044
|
+
const http = _chunkKUPQZYUQcjs.createManagerInspectorClient.call(void 0, `${endpoint}/inspect`, {
|
|
1571
2045
|
headers: {
|
|
1572
2046
|
Authorization: `Bearer token`
|
|
1573
2047
|
}
|
|
@@ -1585,7 +2059,7 @@ function runActorInspectorTests(driverTestConfig) {
|
|
|
1585
2059
|
const { client, endpoint } = await setupDriverTest(c, driverTestConfig);
|
|
1586
2060
|
const handle = await client.counter.create(["test-get-by-id"]);
|
|
1587
2061
|
const actorId = await handle.resolve();
|
|
1588
|
-
const http =
|
|
2062
|
+
const http = _chunkKUPQZYUQcjs.createManagerInspectorClient.call(void 0, `${endpoint}/inspect`, {
|
|
1589
2063
|
headers: {
|
|
1590
2064
|
Authorization: `Bearer token`
|
|
1591
2065
|
}
|
|
@@ -1599,7 +2073,7 @@ function runActorInspectorTests(driverTestConfig) {
|
|
|
1599
2073
|
});
|
|
1600
2074
|
_vitest.test.call(void 0, "should return 404 for non-existent actor", async (c) => {
|
|
1601
2075
|
const { endpoint } = await setupDriverTest(c, driverTestConfig);
|
|
1602
|
-
const http =
|
|
2076
|
+
const http = _chunkKUPQZYUQcjs.createManagerInspectorClient.call(void 0, `${endpoint}/inspect`, {
|
|
1603
2077
|
headers: {
|
|
1604
2078
|
Authorization: `Bearer token`
|
|
1605
2079
|
}
|
|
@@ -1615,7 +2089,7 @@ function runActorInspectorTests(driverTestConfig) {
|
|
|
1615
2089
|
const { client, endpoint } = await setupDriverTest(c, driverTestConfig);
|
|
1616
2090
|
const handle = await client.counter.create(["test-bootstrap"]);
|
|
1617
2091
|
await handle.resolve();
|
|
1618
|
-
const http =
|
|
2092
|
+
const http = _chunkKUPQZYUQcjs.createManagerInspectorClient.call(void 0, `${endpoint}/inspect`, {
|
|
1619
2093
|
headers: {
|
|
1620
2094
|
Authorization: `Bearer token`
|
|
1621
2095
|
}
|
|
@@ -1637,10 +2111,10 @@ function runActorInspectorTests(driverTestConfig) {
|
|
|
1637
2111
|
_vitest.test.call(void 0, "should handle actor not found", async (c) => {
|
|
1638
2112
|
const { endpoint } = await setupDriverTest(c, driverTestConfig);
|
|
1639
2113
|
const actorId = "non-existing";
|
|
1640
|
-
const http =
|
|
2114
|
+
const http = _chunkKUPQZYUQcjs.createActorInspectorClient.call(void 0, `${endpoint}/actors/inspect`, {
|
|
1641
2115
|
headers: {
|
|
1642
2116
|
Authorization: `Bearer token`,
|
|
1643
|
-
[
|
|
2117
|
+
[_chunkTCUI5JFEcjs.HEADER_ACTOR_QUERY]: JSON.stringify({
|
|
1644
2118
|
getForId: { name: "counter", actorId }
|
|
1645
2119
|
})
|
|
1646
2120
|
}
|
|
@@ -1652,10 +2126,10 @@ function runActorInspectorTests(driverTestConfig) {
|
|
|
1652
2126
|
const { client, endpoint } = await setupDriverTest(c, driverTestConfig);
|
|
1653
2127
|
const handle = await client.counter.create(["test-ping"]);
|
|
1654
2128
|
const actorId = await handle.resolve();
|
|
1655
|
-
const http =
|
|
2129
|
+
const http = _chunkKUPQZYUQcjs.createActorInspectorClient.call(void 0, `${endpoint}/actors/inspect`, {
|
|
1656
2130
|
headers: {
|
|
1657
2131
|
Authorization: `Bearer token`,
|
|
1658
|
-
[
|
|
2132
|
+
[_chunkTCUI5JFEcjs.HEADER_ACTOR_QUERY]: JSON.stringify({
|
|
1659
2133
|
getForId: { name: "counter", actorId }
|
|
1660
2134
|
})
|
|
1661
2135
|
}
|
|
@@ -1670,10 +2144,10 @@ function runActorInspectorTests(driverTestConfig) {
|
|
|
1670
2144
|
const handle = await client.counter.create(["test-state"]);
|
|
1671
2145
|
const actorId = await handle.resolve();
|
|
1672
2146
|
await handle.increment(5);
|
|
1673
|
-
const http =
|
|
2147
|
+
const http = _chunkKUPQZYUQcjs.createActorInspectorClient.call(void 0, `${endpoint}/actors/inspect`, {
|
|
1674
2148
|
headers: {
|
|
1675
2149
|
Authorization: `Bearer token`,
|
|
1676
|
-
[
|
|
2150
|
+
[_chunkTCUI5JFEcjs.HEADER_ACTOR_QUERY]: JSON.stringify({
|
|
1677
2151
|
getForId: { name: "counter", actorId }
|
|
1678
2152
|
})
|
|
1679
2153
|
}
|
|
@@ -1692,10 +2166,10 @@ function runActorInspectorTests(driverTestConfig) {
|
|
|
1692
2166
|
const { client, endpoint } = await setupDriverTest(c, driverTestConfig);
|
|
1693
2167
|
const handle = await client.counter.create(["test-state-replace"]);
|
|
1694
2168
|
const actorId = await handle.resolve();
|
|
1695
|
-
const http =
|
|
2169
|
+
const http = _chunkKUPQZYUQcjs.createActorInspectorClient.call(void 0, `${endpoint}/actors/inspect`, {
|
|
1696
2170
|
headers: {
|
|
1697
2171
|
Authorization: `Bearer token`,
|
|
1698
|
-
[
|
|
2172
|
+
[_chunkTCUI5JFEcjs.HEADER_ACTOR_QUERY]: JSON.stringify({
|
|
1699
2173
|
getForId: { name: "counter", actorId }
|
|
1700
2174
|
})
|
|
1701
2175
|
}
|
|
@@ -1717,10 +2191,10 @@ function runActorInspectorTests(driverTestConfig) {
|
|
|
1717
2191
|
const handle = await client.counter.create(["test-state-patch"]);
|
|
1718
2192
|
const actorId = await handle.resolve();
|
|
1719
2193
|
await handle.increment(3);
|
|
1720
|
-
const http =
|
|
2194
|
+
const http = _chunkKUPQZYUQcjs.createActorInspectorClient.call(void 0, `${endpoint}/actors/inspect`, {
|
|
1721
2195
|
headers: {
|
|
1722
2196
|
Authorization: `Bearer token`,
|
|
1723
|
-
[
|
|
2197
|
+
[_chunkTCUI5JFEcjs.HEADER_ACTOR_QUERY]: JSON.stringify({
|
|
1724
2198
|
getForId: { name: "counter", actorId }
|
|
1725
2199
|
})
|
|
1726
2200
|
}
|
|
@@ -1751,10 +2225,10 @@ function runActorInspectorTests(driverTestConfig) {
|
|
|
1751
2225
|
const actorId = await handle.resolve();
|
|
1752
2226
|
handle.connect();
|
|
1753
2227
|
await handle.increment(10);
|
|
1754
|
-
const http =
|
|
2228
|
+
const http = _chunkKUPQZYUQcjs.createActorInspectorClient.call(void 0, `${endpoint}/actors/inspect`, {
|
|
1755
2229
|
headers: {
|
|
1756
2230
|
Authorization: `Bearer token`,
|
|
1757
|
-
[
|
|
2231
|
+
[_chunkTCUI5JFEcjs.HEADER_ACTOR_QUERY]: JSON.stringify({
|
|
1758
2232
|
getForId: { name: "counter", actorId }
|
|
1759
2233
|
})
|
|
1760
2234
|
}
|
|
@@ -1776,10 +2250,10 @@ function runActorInspectorTests(driverTestConfig) {
|
|
|
1776
2250
|
const actorId = await handle.resolve();
|
|
1777
2251
|
handle.connect();
|
|
1778
2252
|
await handle.increment(10);
|
|
1779
|
-
const http =
|
|
2253
|
+
const http = _chunkKUPQZYUQcjs.createActorInspectorClient.call(void 0, `${endpoint}/actors/inspect`, {
|
|
1780
2254
|
headers: {
|
|
1781
2255
|
Authorization: `Bearer token`,
|
|
1782
|
-
[
|
|
2256
|
+
[_chunkTCUI5JFEcjs.HEADER_ACTOR_QUERY]: JSON.stringify({
|
|
1783
2257
|
getForId: { name: "counter", actorId }
|
|
1784
2258
|
})
|
|
1785
2259
|
}
|
|
@@ -1802,10 +2276,10 @@ function runActorInspectorTests(driverTestConfig) {
|
|
|
1802
2276
|
const actorId = await handle.resolve();
|
|
1803
2277
|
handle.connect();
|
|
1804
2278
|
await handle.increment(10);
|
|
1805
|
-
const http =
|
|
2279
|
+
const http = _chunkKUPQZYUQcjs.createActorInspectorClient.call(void 0, `${endpoint}/actors/inspect`, {
|
|
1806
2280
|
headers: {
|
|
1807
2281
|
Authorization: `Bearer token`,
|
|
1808
|
-
[
|
|
2282
|
+
[_chunkTCUI5JFEcjs.HEADER_ACTOR_QUERY]: JSON.stringify({
|
|
1809
2283
|
getForId: { name: "counter", actorId }
|
|
1810
2284
|
})
|
|
1811
2285
|
}
|
|
@@ -1830,10 +2304,10 @@ function runActorInspectorTests(driverTestConfig) {
|
|
|
1830
2304
|
const { client, endpoint } = await setupDriverTest(c, driverTestConfig);
|
|
1831
2305
|
const handle = await client.counter.create(["test-rpcs"]);
|
|
1832
2306
|
const actorId = await handle.resolve();
|
|
1833
|
-
const http =
|
|
2307
|
+
const http = _chunkKUPQZYUQcjs.createActorInspectorClient.call(void 0, `${endpoint}/actors/inspect`, {
|
|
1834
2308
|
headers: {
|
|
1835
2309
|
Authorization: `Bearer token`,
|
|
1836
|
-
[
|
|
2310
|
+
[_chunkTCUI5JFEcjs.HEADER_ACTOR_QUERY]: JSON.stringify({
|
|
1837
2311
|
getForId: { name: "counter", actorId }
|
|
1838
2312
|
})
|
|
1839
2313
|
}
|
|
@@ -1851,10 +2325,10 @@ function runActorInspectorTests(driverTestConfig) {
|
|
|
1851
2325
|
const { client, endpoint } = await setupDriverTest(c, driverTestConfig);
|
|
1852
2326
|
const handle = await client.counter.create(["test-db"]);
|
|
1853
2327
|
const actorId = await handle.resolve();
|
|
1854
|
-
const http =
|
|
2328
|
+
const http = _chunkKUPQZYUQcjs.createActorInspectorClient.call(void 0, `${endpoint}/actors/inspect`, {
|
|
1855
2329
|
headers: {
|
|
1856
2330
|
Authorization: `Bearer token`,
|
|
1857
|
-
[
|
|
2331
|
+
[_chunkTCUI5JFEcjs.HEADER_ACTOR_QUERY]: JSON.stringify({
|
|
1858
2332
|
getForId: { name: "counter", actorId }
|
|
1859
2333
|
})
|
|
1860
2334
|
}
|
|
@@ -1875,10 +2349,10 @@ function runActorInspectorTests(driverTestConfig) {
|
|
|
1875
2349
|
const { client, endpoint } = await setupDriverTest(c, driverTestConfig);
|
|
1876
2350
|
const handle = await client.counter.create(["test-db-query"]);
|
|
1877
2351
|
const actorId = await handle.resolve();
|
|
1878
|
-
const http =
|
|
2352
|
+
const http = _chunkKUPQZYUQcjs.createActorInspectorClient.call(void 0, `${endpoint}/actors/inspect`, {
|
|
1879
2353
|
headers: {
|
|
1880
2354
|
Authorization: `Bearer token`,
|
|
1881
|
-
[
|
|
2355
|
+
[_chunkTCUI5JFEcjs.HEADER_ACTOR_QUERY]: JSON.stringify({
|
|
1882
2356
|
getForId: { name: "counter", actorId }
|
|
1883
2357
|
})
|
|
1884
2358
|
}
|
|
@@ -2887,24 +3361,24 @@ function runRawWebSocketTests(driverTestConfig) {
|
|
|
2887
3361
|
const { client } = await setupDriverTest(c, driverTestConfig);
|
|
2888
3362
|
const actor2 = client.rawWebSocketActor.getOrCreate(["basic"]);
|
|
2889
3363
|
const ws = await actor2.websocket();
|
|
2890
|
-
await new Promise((
|
|
3364
|
+
await new Promise((resolve) => {
|
|
2891
3365
|
if (ws.readyState === WebSocket.OPEN) {
|
|
2892
|
-
|
|
3366
|
+
resolve();
|
|
2893
3367
|
} else {
|
|
2894
3368
|
ws.addEventListener(
|
|
2895
3369
|
"open",
|
|
2896
3370
|
() => {
|
|
2897
|
-
|
|
3371
|
+
resolve();
|
|
2898
3372
|
},
|
|
2899
3373
|
{ once: true }
|
|
2900
3374
|
);
|
|
2901
3375
|
}
|
|
2902
3376
|
});
|
|
2903
|
-
const welcomeMessage = await new Promise((
|
|
3377
|
+
const welcomeMessage = await new Promise((resolve, reject) => {
|
|
2904
3378
|
ws.addEventListener(
|
|
2905
3379
|
"message",
|
|
2906
3380
|
(event) => {
|
|
2907
|
-
|
|
3381
|
+
resolve(JSON.parse(event.data));
|
|
2908
3382
|
},
|
|
2909
3383
|
{ once: true }
|
|
2910
3384
|
);
|
|
@@ -2919,22 +3393,22 @@ function runRawWebSocketTests(driverTestConfig) {
|
|
|
2919
3393
|
const actor2 = client.rawWebSocketActor.getOrCreate(["echo"]);
|
|
2920
3394
|
const ws = await actor2.websocket();
|
|
2921
3395
|
if (ws.readyState !== WebSocket.OPEN) {
|
|
2922
|
-
await new Promise((
|
|
2923
|
-
ws.addEventListener("open", () =>
|
|
3396
|
+
await new Promise((resolve, reject) => {
|
|
3397
|
+
ws.addEventListener("open", () => resolve(), { once: true });
|
|
2924
3398
|
ws.addEventListener("close", reject);
|
|
2925
3399
|
});
|
|
2926
3400
|
}
|
|
2927
|
-
await new Promise((
|
|
2928
|
-
ws.addEventListener("message", () =>
|
|
3401
|
+
await new Promise((resolve, reject) => {
|
|
3402
|
+
ws.addEventListener("message", () => resolve(), { once: true });
|
|
2929
3403
|
ws.addEventListener("close", reject);
|
|
2930
3404
|
});
|
|
2931
3405
|
const testMessage = { test: "data", timestamp: Date.now() };
|
|
2932
3406
|
ws.send(JSON.stringify(testMessage));
|
|
2933
|
-
const echoMessage = await new Promise((
|
|
3407
|
+
const echoMessage = await new Promise((resolve, reject) => {
|
|
2934
3408
|
ws.addEventListener(
|
|
2935
3409
|
"message",
|
|
2936
3410
|
(event) => {
|
|
2937
|
-
|
|
3411
|
+
resolve(JSON.parse(event.data));
|
|
2938
3412
|
},
|
|
2939
3413
|
{ once: true }
|
|
2940
3414
|
);
|
|
@@ -2948,21 +3422,21 @@ function runRawWebSocketTests(driverTestConfig) {
|
|
|
2948
3422
|
const actor2 = client.rawWebSocketActor.getOrCreate(["ping"]);
|
|
2949
3423
|
const ws = await actor2.websocket();
|
|
2950
3424
|
if (ws.readyState !== WebSocket.OPEN) {
|
|
2951
|
-
await new Promise((
|
|
2952
|
-
ws.addEventListener("open", () =>
|
|
3425
|
+
await new Promise((resolve, reject) => {
|
|
3426
|
+
ws.addEventListener("open", () => resolve(), { once: true });
|
|
2953
3427
|
ws.addEventListener("close", reject);
|
|
2954
3428
|
});
|
|
2955
3429
|
}
|
|
2956
|
-
await new Promise((
|
|
2957
|
-
ws.addEventListener("message", () =>
|
|
3430
|
+
await new Promise((resolve, reject) => {
|
|
3431
|
+
ws.addEventListener("message", () => resolve(), { once: true });
|
|
2958
3432
|
ws.addEventListener("close", reject);
|
|
2959
3433
|
});
|
|
2960
3434
|
ws.send(JSON.stringify({ type: "ping" }));
|
|
2961
|
-
const pongMessage = await new Promise((
|
|
3435
|
+
const pongMessage = await new Promise((resolve, reject) => {
|
|
2962
3436
|
ws.addEventListener("message", (event) => {
|
|
2963
3437
|
const data = JSON.parse(event.data);
|
|
2964
3438
|
if (data.type === "pong") {
|
|
2965
|
-
|
|
3439
|
+
resolve(data);
|
|
2966
3440
|
}
|
|
2967
3441
|
});
|
|
2968
3442
|
ws.addEventListener("close", reject);
|
|
@@ -2975,23 +3449,23 @@ function runRawWebSocketTests(driverTestConfig) {
|
|
|
2975
3449
|
const { client } = await setupDriverTest(c, driverTestConfig);
|
|
2976
3450
|
const actor1 = client.rawWebSocketActor.getOrCreate(["stats"]);
|
|
2977
3451
|
const ws1 = await actor1.websocket();
|
|
2978
|
-
const ws1MessagePromise = new Promise((
|
|
2979
|
-
ws1.addEventListener("message", () =>
|
|
3452
|
+
const ws1MessagePromise = new Promise((resolve, reject) => {
|
|
3453
|
+
ws1.addEventListener("message", () => resolve(), { once: true });
|
|
2980
3454
|
ws1.addEventListener("close", reject);
|
|
2981
3455
|
});
|
|
2982
3456
|
await ws1MessagePromise;
|
|
2983
3457
|
const actor2 = client.rawWebSocketActor.get(["stats"]);
|
|
2984
3458
|
const ws2 = await actor2.websocket();
|
|
2985
|
-
const ws2MessagePromise = new Promise((
|
|
2986
|
-
ws2.addEventListener("message", () =>
|
|
3459
|
+
const ws2MessagePromise = new Promise((resolve, reject) => {
|
|
3460
|
+
ws2.addEventListener("message", () => resolve(), { once: true });
|
|
2987
3461
|
ws2.addEventListener("close", reject);
|
|
2988
3462
|
});
|
|
2989
3463
|
await Promise.all([ws1MessagePromise, ws2MessagePromise]);
|
|
2990
|
-
const pingPromise = new Promise((
|
|
3464
|
+
const pingPromise = new Promise((resolve, reject) => {
|
|
2991
3465
|
ws2.addEventListener("message", (event) => {
|
|
2992
3466
|
const data = JSON.parse(event.data);
|
|
2993
3467
|
if (data.type === "pong") {
|
|
2994
|
-
|
|
3468
|
+
resolve(void 0);
|
|
2995
3469
|
}
|
|
2996
3470
|
});
|
|
2997
3471
|
ws2.addEventListener("close", reject);
|
|
@@ -3000,11 +3474,11 @@ function runRawWebSocketTests(driverTestConfig) {
|
|
|
3000
3474
|
ws1.send(JSON.stringify({ data: "test3" }));
|
|
3001
3475
|
ws2.send(JSON.stringify({ type: "ping" }));
|
|
3002
3476
|
await pingPromise;
|
|
3003
|
-
const statsPromise = new Promise((
|
|
3477
|
+
const statsPromise = new Promise((resolve, reject) => {
|
|
3004
3478
|
ws1.addEventListener("message", (event) => {
|
|
3005
3479
|
const data = JSON.parse(event.data);
|
|
3006
3480
|
if (data.type === "stats") {
|
|
3007
|
-
|
|
3481
|
+
resolve(data);
|
|
3008
3482
|
}
|
|
3009
3483
|
});
|
|
3010
3484
|
ws1.addEventListener("close", reject);
|
|
@@ -3024,18 +3498,18 @@ function runRawWebSocketTests(driverTestConfig) {
|
|
|
3024
3498
|
const actor2 = client.rawWebSocketBinaryActor.getOrCreate(["binary"]);
|
|
3025
3499
|
const ws = await actor2.websocket();
|
|
3026
3500
|
if (ws.readyState !== WebSocket.OPEN) {
|
|
3027
|
-
await new Promise((
|
|
3028
|
-
ws.addEventListener("open", () =>
|
|
3501
|
+
await new Promise((resolve, reject) => {
|
|
3502
|
+
ws.addEventListener("open", () => resolve(), { once: true });
|
|
3029
3503
|
ws.addEventListener("close", reject);
|
|
3030
3504
|
});
|
|
3031
3505
|
}
|
|
3032
3506
|
const receiveBinaryMessage = async () => {
|
|
3033
3507
|
const response = await new Promise(
|
|
3034
|
-
(
|
|
3508
|
+
(resolve, reject) => {
|
|
3035
3509
|
ws.addEventListener(
|
|
3036
3510
|
"message",
|
|
3037
3511
|
(event) => {
|
|
3038
|
-
|
|
3512
|
+
resolve(event.data);
|
|
3039
3513
|
},
|
|
3040
3514
|
{ once: true }
|
|
3041
3515
|
);
|
|
@@ -3064,18 +3538,18 @@ function runRawWebSocketTests(driverTestConfig) {
|
|
|
3064
3538
|
const { client } = await setupDriverTest(c, driverTestConfig);
|
|
3065
3539
|
const actor2 = client.rawWebSocketActor.getOrCreate(["paths"]);
|
|
3066
3540
|
const ws = await actor2.websocket("custom/path");
|
|
3067
|
-
await new Promise((
|
|
3541
|
+
await new Promise((resolve, reject) => {
|
|
3068
3542
|
ws.addEventListener("open", () => {
|
|
3069
|
-
|
|
3543
|
+
resolve();
|
|
3070
3544
|
});
|
|
3071
3545
|
ws.addEventListener("error", reject);
|
|
3072
3546
|
ws.addEventListener("close", reject);
|
|
3073
3547
|
});
|
|
3074
|
-
const welcomeMessage = await new Promise((
|
|
3548
|
+
const welcomeMessage = await new Promise((resolve) => {
|
|
3075
3549
|
ws.addEventListener(
|
|
3076
3550
|
"message",
|
|
3077
3551
|
(event) => {
|
|
3078
|
-
|
|
3552
|
+
resolve(JSON.parse(event.data));
|
|
3079
3553
|
},
|
|
3080
3554
|
{ once: true }
|
|
3081
3555
|
);
|
|
@@ -3090,15 +3564,15 @@ function runRawWebSocketTests(driverTestConfig) {
|
|
|
3090
3564
|
params: testParams
|
|
3091
3565
|
});
|
|
3092
3566
|
const ws = await actor2.websocket();
|
|
3093
|
-
await new Promise((
|
|
3094
|
-
ws.addEventListener("open", () =>
|
|
3567
|
+
await new Promise((resolve) => {
|
|
3568
|
+
ws.addEventListener("open", () => resolve(), { once: true });
|
|
3095
3569
|
});
|
|
3096
3570
|
ws.send(JSON.stringify({ type: "getAuthData" }));
|
|
3097
|
-
const response = await new Promise((
|
|
3571
|
+
const response = await new Promise((resolve, reject) => {
|
|
3098
3572
|
ws.addEventListener("message", (event) => {
|
|
3099
3573
|
const data = JSON.parse(event.data);
|
|
3100
3574
|
if (data.type === "authData") {
|
|
3101
|
-
|
|
3575
|
+
resolve(data);
|
|
3102
3576
|
}
|
|
3103
3577
|
});
|
|
3104
3578
|
ws.addEventListener("close", reject);
|
|
@@ -3111,15 +3585,15 @@ function runRawWebSocketTests(driverTestConfig) {
|
|
|
3111
3585
|
const actor2 = client.rawWebSocketActor.getOrCreate(["close-test"]);
|
|
3112
3586
|
const ws = await actor2.websocket();
|
|
3113
3587
|
if (ws.readyState !== WebSocket.OPEN) {
|
|
3114
|
-
await new Promise((
|
|
3115
|
-
ws.addEventListener("open", () =>
|
|
3588
|
+
await new Promise((resolve, reject) => {
|
|
3589
|
+
ws.addEventListener("open", () => resolve(), { once: true });
|
|
3116
3590
|
ws.addEventListener("close", reject);
|
|
3117
3591
|
});
|
|
3118
3592
|
}
|
|
3119
3593
|
const initialStats = await actor2.getStats();
|
|
3120
3594
|
_vitest.expect.call(void 0, initialStats.connectionCount).toBe(1);
|
|
3121
|
-
const closePromise = new Promise((
|
|
3122
|
-
ws.addEventListener("close", () =>
|
|
3595
|
+
const closePromise = new Promise((resolve) => {
|
|
3596
|
+
ws.addEventListener("close", () => resolve(), { once: true });
|
|
3123
3597
|
});
|
|
3124
3598
|
ws.close();
|
|
3125
3599
|
await closePromise;
|
|
@@ -3129,7 +3603,7 @@ function runRawWebSocketTests(driverTestConfig) {
|
|
|
3129
3603
|
if (finalStats.connectionCount === 0) {
|
|
3130
3604
|
break;
|
|
3131
3605
|
}
|
|
3132
|
-
await new Promise((
|
|
3606
|
+
await new Promise((resolve) => setTimeout(resolve, 50));
|
|
3133
3607
|
}
|
|
3134
3608
|
_vitest.expect.call(void 0, finalStats == null ? void 0 : finalStats.connectionCount).toBe(0);
|
|
3135
3609
|
});
|
|
@@ -3137,15 +3611,15 @@ function runRawWebSocketTests(driverTestConfig) {
|
|
|
3137
3611
|
const { client } = await setupDriverTest(c, driverTestConfig);
|
|
3138
3612
|
const actor2 = client.rawWebSocketActor.getOrCreate(["open-close-test"]);
|
|
3139
3613
|
const ws1 = await actor2.websocket();
|
|
3140
|
-
await new Promise((
|
|
3141
|
-
ws1.addEventListener("open", () =>
|
|
3614
|
+
await new Promise((resolve, reject) => {
|
|
3615
|
+
ws1.addEventListener("open", () => resolve(), { once: true });
|
|
3142
3616
|
ws1.addEventListener("close", reject);
|
|
3143
3617
|
});
|
|
3144
|
-
const welcome1 = await new Promise((
|
|
3618
|
+
const welcome1 = await new Promise((resolve, reject) => {
|
|
3145
3619
|
ws1.addEventListener(
|
|
3146
3620
|
"message",
|
|
3147
3621
|
(event) => {
|
|
3148
|
-
|
|
3622
|
+
resolve(JSON.parse(event.data));
|
|
3149
3623
|
},
|
|
3150
3624
|
{ once: true }
|
|
3151
3625
|
);
|
|
@@ -3154,15 +3628,15 @@ function runRawWebSocketTests(driverTestConfig) {
|
|
|
3154
3628
|
_vitest.expect.call(void 0, welcome1.type).toBe("welcome");
|
|
3155
3629
|
_vitest.expect.call(void 0, welcome1.connectionCount).toBe(1);
|
|
3156
3630
|
const ws2 = await actor2.websocket();
|
|
3157
|
-
await new Promise((
|
|
3158
|
-
ws2.addEventListener("open", () =>
|
|
3631
|
+
await new Promise((resolve, reject) => {
|
|
3632
|
+
ws2.addEventListener("open", () => resolve(), { once: true });
|
|
3159
3633
|
ws2.addEventListener("close", reject);
|
|
3160
3634
|
});
|
|
3161
|
-
const welcome2 = await new Promise((
|
|
3635
|
+
const welcome2 = await new Promise((resolve, reject) => {
|
|
3162
3636
|
ws2.addEventListener(
|
|
3163
3637
|
"message",
|
|
3164
3638
|
(event) => {
|
|
3165
|
-
|
|
3639
|
+
resolve(JSON.parse(event.data));
|
|
3166
3640
|
},
|
|
3167
3641
|
{ once: true }
|
|
3168
3642
|
);
|
|
@@ -3173,8 +3647,8 @@ function runRawWebSocketTests(driverTestConfig) {
|
|
|
3173
3647
|
const midStats = await actor2.getStats();
|
|
3174
3648
|
_vitest.expect.call(void 0, midStats.connectionCount).toBe(2);
|
|
3175
3649
|
ws1.close();
|
|
3176
|
-
await new Promise((
|
|
3177
|
-
ws1.addEventListener("close", () =>
|
|
3650
|
+
await new Promise((resolve) => {
|
|
3651
|
+
ws1.addEventListener("close", () => resolve(), { once: true });
|
|
3178
3652
|
});
|
|
3179
3653
|
let afterFirstClose;
|
|
3180
3654
|
for (let i = 0; i < 20; i++) {
|
|
@@ -3182,12 +3656,12 @@ function runRawWebSocketTests(driverTestConfig) {
|
|
|
3182
3656
|
if (afterFirstClose.connectionCount === 1) {
|
|
3183
3657
|
break;
|
|
3184
3658
|
}
|
|
3185
|
-
await new Promise((
|
|
3659
|
+
await new Promise((resolve) => setTimeout(resolve, 50));
|
|
3186
3660
|
}
|
|
3187
3661
|
_vitest.expect.call(void 0, afterFirstClose == null ? void 0 : afterFirstClose.connectionCount).toBe(1);
|
|
3188
3662
|
ws2.close();
|
|
3189
|
-
await new Promise((
|
|
3190
|
-
ws2.addEventListener("close", () =>
|
|
3663
|
+
await new Promise((resolve) => {
|
|
3664
|
+
ws2.addEventListener("close", () => resolve(), { once: true });
|
|
3191
3665
|
});
|
|
3192
3666
|
let finalStats;
|
|
3193
3667
|
for (let i = 0; i < 20; i++) {
|
|
@@ -3195,7 +3669,7 @@ function runRawWebSocketTests(driverTestConfig) {
|
|
|
3195
3669
|
if (finalStats.connectionCount === 0) {
|
|
3196
3670
|
break;
|
|
3197
3671
|
}
|
|
3198
|
-
await new Promise((
|
|
3672
|
+
await new Promise((resolve) => setTimeout(resolve, 50));
|
|
3199
3673
|
}
|
|
3200
3674
|
_vitest.expect.call(void 0, finalStats == null ? void 0 : finalStats.connectionCount).toBe(0);
|
|
3201
3675
|
});
|
|
@@ -3203,15 +3677,15 @@ function runRawWebSocketTests(driverTestConfig) {
|
|
|
3203
3677
|
const { client } = await setupDriverTest(c, driverTestConfig);
|
|
3204
3678
|
const actor2 = client.rawWebSocketActor.getOrCreate(["query-params"]);
|
|
3205
3679
|
const ws = await actor2.websocket("api/v1/stream?token=abc123&user=test");
|
|
3206
|
-
await new Promise((
|
|
3207
|
-
ws.addEventListener("open", () =>
|
|
3680
|
+
await new Promise((resolve, reject) => {
|
|
3681
|
+
ws.addEventListener("open", () => resolve(), { once: true });
|
|
3208
3682
|
ws.addEventListener("error", reject);
|
|
3209
3683
|
});
|
|
3210
|
-
const requestInfoPromise = new Promise((
|
|
3684
|
+
const requestInfoPromise = new Promise((resolve, reject) => {
|
|
3211
3685
|
ws.addEventListener("message", (event) => {
|
|
3212
3686
|
const data = JSON.parse(event.data);
|
|
3213
3687
|
if (data.type === "requestInfo") {
|
|
3214
|
-
|
|
3688
|
+
resolve(data);
|
|
3215
3689
|
}
|
|
3216
3690
|
});
|
|
3217
3691
|
ws.addEventListener("close", reject);
|
|
@@ -3362,7 +3836,7 @@ async function createTestRuntime(registryPath, driverFactory) {
|
|
|
3362
3836
|
};
|
|
3363
3837
|
} else {
|
|
3364
3838
|
let upgradeWebSocket;
|
|
3365
|
-
const config =
|
|
3839
|
+
const config = _chunkNTCUGYSDcjs.RunConfigSchema.parse({
|
|
3366
3840
|
driver,
|
|
3367
3841
|
getUpgradeWebSocket: () => upgradeWebSocket,
|
|
3368
3842
|
inspector: {
|
|
@@ -3371,7 +3845,7 @@ async function createTestRuntime(registryPath, driverFactory) {
|
|
|
3371
3845
|
}
|
|
3372
3846
|
});
|
|
3373
3847
|
const managerDriver = driver.manager(registry.config, config);
|
|
3374
|
-
const { router } =
|
|
3848
|
+
const { router } = _chunkTWGATZ3Xcjs.createManagerRouter.call(void 0,
|
|
3375
3849
|
registry.config,
|
|
3376
3850
|
config,
|
|
3377
3851
|
managerDriver,
|
|
@@ -3379,7 +3853,7 @@ async function createTestRuntime(registryPath, driverFactory) {
|
|
|
3379
3853
|
);
|
|
3380
3854
|
const nodeWebSocket = _nodews.createNodeWebSocket.call(void 0, { app: router });
|
|
3381
3855
|
upgradeWebSocket = nodeWebSocket.upgradeWebSocket;
|
|
3382
|
-
const port = await
|
|
3856
|
+
const port = await _chunk6P6RA47Ncjs.getPort.call(void 0, );
|
|
3383
3857
|
const server = _nodeserver.serve.call(void 0, {
|
|
3384
3858
|
fetch: router.fetch,
|
|
3385
3859
|
hostname: "127.0.0.1",
|
|
@@ -3393,7 +3867,7 @@ async function createTestRuntime(registryPath, driverFactory) {
|
|
|
3393
3867
|
const serverEndpoint = `http://127.0.0.1:${port}`;
|
|
3394
3868
|
logger().info({ msg: "test serer listening", port });
|
|
3395
3869
|
const cleanup = async () => {
|
|
3396
|
-
await new Promise((
|
|
3870
|
+
await new Promise((resolve) => server.close(() => resolve(void 0)));
|
|
3397
3871
|
await (driverCleanup == null ? void 0 : driverCleanup());
|
|
3398
3872
|
};
|
|
3399
3873
|
return {
|