rivetkit 2.0.4 → 2.0.5
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/{chunk-HLLF4B4Q.js → chunk-2MD57QF4.js} +7 -5
- package/dist/tsup/chunk-2MD57QF4.js.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-4CXBCT26.cjs → chunk-5YTI25C3.cjs} +7 -7
- package/dist/tsup/{chunk-4CXBCT26.cjs.map → chunk-5YTI25C3.cjs.map} +1 -1
- package/dist/tsup/{chunk-TQ62L3X7.js → chunk-B2QGJGZQ.js} +18 -5
- package/dist/tsup/chunk-B2QGJGZQ.js.map +1 -0
- package/dist/tsup/{chunk-PQY7KKTL.js → chunk-CFFKMUYH.js} +32 -7
- package/dist/tsup/{chunk-PQY7KKTL.js.map → chunk-CFFKMUYH.js.map} +1 -1
- package/dist/tsup/{chunk-H26RP6GD.js → chunk-CKA54YQN.js} +2 -2
- package/dist/tsup/chunk-D7NWUCRK.cjs +20 -0
- package/dist/tsup/{chunk-4R73YDN3.cjs.map → chunk-D7NWUCRK.cjs.map} +1 -1
- package/dist/tsup/{chunk-IH6CKNDW.cjs → chunk-FGFT4FVX.cjs} +9 -9
- package/dist/tsup/{chunk-IH6CKNDW.cjs.map → chunk-FGFT4FVX.cjs.map} +1 -1
- package/dist/tsup/{chunk-HI3HWJRC.js → chunk-I5VTWPHW.js} +4 -4
- package/dist/tsup/{chunk-HI3HWJRC.js.map → chunk-I5VTWPHW.js.map} +1 -1
- package/dist/tsup/{chunk-GICQ3YCU.cjs → chunk-IRMBWX36.cjs} +39 -37
- package/dist/tsup/chunk-IRMBWX36.cjs.map +1 -0
- package/dist/tsup/{chunk-XJQHKJ4P.js → chunk-L7QRXNWP.js} +331 -62
- package/dist/tsup/chunk-L7QRXNWP.js.map +1 -0
- package/dist/tsup/{chunk-LWNKVZG5.cjs → chunk-LZIBTLEY.cjs} +12 -12
- package/dist/tsup/{chunk-LWNKVZG5.cjs.map → chunk-LZIBTLEY.cjs.map} +1 -1
- package/dist/tsup/{chunk-VO7ZRVVD.cjs → chunk-MRZS2J4X.cjs} +581 -312
- package/dist/tsup/chunk-MRZS2J4X.cjs.map +1 -0
- package/dist/tsup/{chunk-QK72M5JB.js → chunk-PG3K2LI7.js} +2 -2
- package/dist/tsup/{chunk-QNNXFOQV.cjs → chunk-PHSQJ6QI.cjs} +3 -3
- package/dist/tsup/{chunk-QNNXFOQV.cjs.map → chunk-PHSQJ6QI.cjs.map} +1 -1
- package/dist/tsup/{chunk-WHBPJNGW.cjs → chunk-RM2SVURR.cjs} +29 -16
- package/dist/tsup/chunk-RM2SVURR.cjs.map +1 -0
- package/dist/tsup/{chunk-6LJT3QRL.cjs → chunk-WADSS5X4.cjs} +37 -12
- package/dist/tsup/chunk-WADSS5X4.cjs.map +1 -0
- package/dist/tsup/{chunk-LV2S3OU3.js → chunk-WNGOBAA7.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-3F2YSRJL.js → chunk-YW6Y6VNE.js} +4 -4
- 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-BvE-Oq7t.d.ts} +22 -11
- package/dist/tsup/{connection-Dyd4NLGW.d.cts → connection-DTzmWwU5.d.cts} +22 -11
- 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 +606 -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 +563 -97
- package/dist/tsup/driver-test-suite/mod.js.map +1 -1
- package/dist/tsup/inspector/mod.cjs +6 -6
- package/dist/tsup/inspector/mod.js +5 -5
- package/dist/tsup/mod.cjs +9 -9
- package/dist/tsup/mod.d.cts +3 -3
- package/dist/tsup/mod.d.ts +3 -3
- package/dist/tsup/mod.js +8 -8
- package/dist/tsup/{router-endpoints-BTe_Rsdn.d.cts → router-endpoints-CctffZNL.d.cts} +1 -1
- package/dist/tsup/{router-endpoints-CBSrKHmo.d.ts → router-endpoints-DFm1BglJ.d.ts} +1 -1
- package/dist/tsup/test/mod.cjs +10 -10
- package/dist/tsup/test/mod.d.cts +1 -1
- package/dist/tsup/test/mod.d.ts +1 -1
- package/dist/tsup/test/mod.js +9 -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/router-endpoints.ts +6 -1
- package/src/actor/router.ts +2 -1
- package/src/client/mod.ts +1 -1
- package/src/client/raw-utils.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 +10 -9
- package/src/drivers/file-system/global-state.ts +3 -1
- package/src/drivers/file-system/manager.ts +16 -21
- package/src/manager/router.ts +373 -5
- package/src/registry/mod.ts +29 -33
- package/src/registry/run-config.ts +16 -1
- package/src/remote-manager-driver/actor-http-client.ts +3 -1
- package/src/remote-manager-driver/actor-websocket-client.ts +2 -1
- package/src/remote-manager-driver/api-utils.ts +4 -1
- package/src/remote-manager-driver/mod.ts +2 -1
- 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.map +0 -1
- package/dist/tsup/chunk-HLLF4B4Q.js.map +0 -1
- package/dist/tsup/chunk-NFU2BBT5.js.map +0 -1
- package/dist/tsup/chunk-TQ62L3X7.js.map +0 -1
- package/dist/tsup/chunk-VO7ZRVVD.cjs.map +0 -1
- package/dist/tsup/chunk-WHBPJNGW.cjs.map +0 -1
- package/dist/tsup/chunk-XJQHKJ4P.js.map +0 -1
- /package/dist/tsup/{chunk-H26RP6GD.js.map → chunk-CKA54YQN.js.map} +0 -0
- /package/dist/tsup/{chunk-QK72M5JB.js.map → chunk-PG3K2LI7.js.map} +0 -0
- /package/dist/tsup/{chunk-LV2S3OU3.js.map → chunk-WNGOBAA7.js.map} +0 -0
- /package/dist/tsup/{chunk-3F2YSRJL.js.map → chunk-YW6Y6VNE.js.map} +0 -0
|
@@ -1,33 +1,38 @@
|
|
|
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 _chunkFGFT4FVXcjs = require('../chunk-FGFT4FVX.cjs');
|
|
4
4
|
|
|
5
5
|
|
|
6
|
-
var
|
|
6
|
+
var _chunkD7NWUCRKcjs = require('../chunk-D7NWUCRK.cjs');
|
|
7
7
|
|
|
8
8
|
|
|
9
9
|
|
|
10
|
-
var _chunkVO7ZRVVDcjs = require('../chunk-VO7ZRVVD.cjs');
|
|
11
10
|
|
|
12
11
|
|
|
12
|
+
var _chunkMRZS2J4Xcjs = require('../chunk-MRZS2J4X.cjs');
|
|
13
13
|
|
|
14
|
-
var _chunkLWNKVZG5cjs = require('../chunk-LWNKVZG5.cjs');
|
|
15
|
-
require('../chunk-QNNXFOQV.cjs');
|
|
16
14
|
|
|
17
15
|
|
|
18
|
-
var
|
|
16
|
+
var _chunkLZIBTLEYcjs = require('../chunk-LZIBTLEY.cjs');
|
|
19
17
|
|
|
20
18
|
|
|
19
|
+
var _chunkPHSQJ6QIcjs = require('../chunk-PHSQJ6QI.cjs');
|
|
21
20
|
|
|
22
|
-
var _chunkGICQ3YCUcjs = require('../chunk-GICQ3YCU.cjs');
|
|
23
21
|
|
|
22
|
+
var _chunkRM2SVURRcjs = require('../chunk-RM2SVURR.cjs');
|
|
24
23
|
|
|
25
|
-
var _chunk4CXBCT26cjs = require('../chunk-4CXBCT26.cjs');
|
|
26
|
-
require('../chunk-6LJT3QRL.cjs');
|
|
27
24
|
|
|
28
25
|
|
|
29
26
|
|
|
30
|
-
var
|
|
27
|
+
var _chunkIRMBWX36cjs = require('../chunk-IRMBWX36.cjs');
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
var _chunk5YTI25C3cjs = require('../chunk-5YTI25C3.cjs');
|
|
31
|
+
require('../chunk-WADSS5X4.cjs');
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
var _chunk5QGQK44Lcjs = require('../chunk-5QGQK44L.cjs');
|
|
31
36
|
|
|
32
37
|
// src/driver-test-suite/mod.ts
|
|
33
38
|
var _nodeserver = require('@hono/node-server');
|
|
@@ -38,36 +43,504 @@ var _vitest = require('vitest');
|
|
|
38
43
|
|
|
39
44
|
// src/driver-test-suite/log.ts
|
|
40
45
|
function logger() {
|
|
41
|
-
return
|
|
46
|
+
return _chunk5YTI25C3cjs.getLogger.call(void 0, "test-suite");
|
|
42
47
|
}
|
|
43
48
|
|
|
44
49
|
// src/driver-test-suite/tests/action-features.ts
|
|
45
50
|
|
|
46
51
|
|
|
47
52
|
// src/driver-test-suite/utils.ts
|
|
48
|
-
var _path = require('path');
|
|
49
53
|
|
|
54
|
+
|
|
55
|
+
// src/driver-test-suite/test-inline-client-driver.ts
|
|
56
|
+
var _cborx = require('cbor-x'); var cbor = _interopRequireWildcard(_cborx);
|
|
57
|
+
function createTestInlineClientDriver(endpoint, encoding, transport) {
|
|
58
|
+
return {
|
|
59
|
+
getForId(input) {
|
|
60
|
+
return makeInlineRequest(endpoint, encoding, transport, "getForId", [
|
|
61
|
+
input
|
|
62
|
+
]);
|
|
63
|
+
},
|
|
64
|
+
getWithKey(input) {
|
|
65
|
+
return makeInlineRequest(endpoint, encoding, transport, "getWithKey", [
|
|
66
|
+
input
|
|
67
|
+
]);
|
|
68
|
+
},
|
|
69
|
+
getOrCreateWithKey(input) {
|
|
70
|
+
return makeInlineRequest(
|
|
71
|
+
endpoint,
|
|
72
|
+
encoding,
|
|
73
|
+
transport,
|
|
74
|
+
"getOrCreateWithKey",
|
|
75
|
+
[input]
|
|
76
|
+
);
|
|
77
|
+
},
|
|
78
|
+
createActor(input) {
|
|
79
|
+
return makeInlineRequest(endpoint, encoding, transport, "createActor", [
|
|
80
|
+
input
|
|
81
|
+
]);
|
|
82
|
+
},
|
|
83
|
+
async sendRequest(actorId, actorRequest) {
|
|
84
|
+
var _a;
|
|
85
|
+
const oldUrl = new URL(actorRequest.url);
|
|
86
|
+
const normalizedPath = oldUrl.pathname.startsWith("/") ? oldUrl.pathname.slice(1) : oldUrl.pathname;
|
|
87
|
+
const pathWithQuery = normalizedPath + oldUrl.search;
|
|
88
|
+
logger().debug({
|
|
89
|
+
msg: "sending raw http request via test inline driver",
|
|
90
|
+
actorId,
|
|
91
|
+
encoding,
|
|
92
|
+
path: pathWithQuery
|
|
93
|
+
});
|
|
94
|
+
const url = `${endpoint}/.test/inline-driver/send-request/${pathWithQuery}`;
|
|
95
|
+
logger().debug({ msg: "rewriting http url", from: oldUrl, to: url });
|
|
96
|
+
const headers = new Headers(actorRequest.headers);
|
|
97
|
+
headers.set(_chunkIRMBWX36cjs.HEADER_ACTOR_ID, actorId);
|
|
98
|
+
const response = await fetch(
|
|
99
|
+
new Request(url, {
|
|
100
|
+
method: actorRequest.method,
|
|
101
|
+
headers,
|
|
102
|
+
body: actorRequest.body,
|
|
103
|
+
signal: actorRequest.signal
|
|
104
|
+
})
|
|
105
|
+
);
|
|
106
|
+
if (!response.ok && ((_a = response.headers.get("content-type")) == null ? void 0 : _a.includes("application/json"))) {
|
|
107
|
+
try {
|
|
108
|
+
const clonedResponse = response.clone();
|
|
109
|
+
const errorData = await clonedResponse.json();
|
|
110
|
+
if (errorData.error) {
|
|
111
|
+
if (typeof errorData.error === "object") {
|
|
112
|
+
throw new (0, _chunkMRZS2J4Xcjs.ActorError)(
|
|
113
|
+
errorData.error.code,
|
|
114
|
+
errorData.error.message,
|
|
115
|
+
errorData.error.metadata
|
|
116
|
+
);
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
} catch (e) {
|
|
120
|
+
if (!(e instanceof _chunkMRZS2J4Xcjs.ActorError)) {
|
|
121
|
+
return response;
|
|
122
|
+
}
|
|
123
|
+
throw e;
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
return response;
|
|
127
|
+
},
|
|
128
|
+
async openWebSocket(path, actorId, encoding2, params) {
|
|
129
|
+
const WebSocket2 = await _chunkPHSQJ6QIcjs.importWebSocket.call(void 0, );
|
|
130
|
+
const normalizedPath = path.startsWith("/") ? path.slice(1) : path;
|
|
131
|
+
logger().debug({
|
|
132
|
+
msg: "creating websocket connection via test inline driver"
|
|
133
|
+
});
|
|
134
|
+
const wsUrl = new URL(
|
|
135
|
+
`${endpoint}/.test/inline-driver/connect-websocket/ws`
|
|
136
|
+
);
|
|
137
|
+
wsUrl.searchParams.set("path", normalizedPath);
|
|
138
|
+
wsUrl.searchParams.set("actorId", actorId);
|
|
139
|
+
if (params !== void 0)
|
|
140
|
+
wsUrl.searchParams.set("params", JSON.stringify(params));
|
|
141
|
+
wsUrl.searchParams.set("encodingKind", encoding2);
|
|
142
|
+
const wsProtocol = wsUrl.protocol === "https:" ? "wss:" : "ws:";
|
|
143
|
+
const finalWsUrl = `${wsProtocol}//${wsUrl.host}${wsUrl.pathname}${wsUrl.search}`;
|
|
144
|
+
logger().debug({ msg: "connecting to websocket", url: finalWsUrl });
|
|
145
|
+
const ws = new WebSocket2(finalWsUrl, [
|
|
146
|
+
// HACK: See packages/drivers/cloudflare-workers/src/websocket.ts
|
|
147
|
+
"rivetkit"
|
|
148
|
+
]);
|
|
149
|
+
return ws;
|
|
150
|
+
},
|
|
151
|
+
async proxyRequest(c, actorRequest, actorId) {
|
|
152
|
+
return await this.sendRequest(actorId, actorRequest);
|
|
153
|
+
},
|
|
154
|
+
proxyWebSocket(_c, _path, _actorId, _encoding, _params, _authData) {
|
|
155
|
+
throw "UNIMPLEMENTED";
|
|
156
|
+
},
|
|
157
|
+
displayInformation() {
|
|
158
|
+
return { name: "Test Inline", properties: {} };
|
|
159
|
+
}
|
|
160
|
+
// action: async <Args extends Array<unknown> = unknown[], Response = unknown>(
|
|
161
|
+
// _c: HonoContext | undefined,
|
|
162
|
+
// actorQuery: ActorQuery,
|
|
163
|
+
// encoding: Encoding,
|
|
164
|
+
// params: unknown,
|
|
165
|
+
// name: string,
|
|
166
|
+
// args: Args,
|
|
167
|
+
// ): Promise<Response> => {
|
|
168
|
+
// return makeInlineRequest<Response>(
|
|
169
|
+
// endpoint,
|
|
170
|
+
// encoding,
|
|
171
|
+
// transport,
|
|
172
|
+
// "action",
|
|
173
|
+
// [undefined, actorQuery, encoding, params, name, args],
|
|
174
|
+
// );
|
|
175
|
+
// },
|
|
176
|
+
//
|
|
177
|
+
// resolveActorId: async (
|
|
178
|
+
// _c: HonoContext | undefined,
|
|
179
|
+
// actorQuery: ActorQuery,
|
|
180
|
+
// encodingKind: Encoding,
|
|
181
|
+
// params: unknown,
|
|
182
|
+
// ): Promise<string> => {
|
|
183
|
+
// return makeInlineRequest<string>(
|
|
184
|
+
// endpoint,
|
|
185
|
+
// encodingKind,
|
|
186
|
+
// transport,
|
|
187
|
+
// "resolveActorId",
|
|
188
|
+
// [undefined, actorQuery, encodingKind, params],
|
|
189
|
+
// );
|
|
190
|
+
// },
|
|
191
|
+
//
|
|
192
|
+
// connectWebSocket: async (
|
|
193
|
+
// _c: HonoContext | undefined,
|
|
194
|
+
// actorQuery: ActorQuery,
|
|
195
|
+
// encodingKind: Encoding,
|
|
196
|
+
// params: unknown,
|
|
197
|
+
// ): Promise<WebSocket> => {
|
|
198
|
+
// const WebSocket = await importWebSocket();
|
|
199
|
+
//
|
|
200
|
+
// logger().debug({
|
|
201
|
+
// msg: "creating websocket connection via test inline driver",
|
|
202
|
+
// actorQuery,
|
|
203
|
+
// encodingKind,
|
|
204
|
+
// });
|
|
205
|
+
//
|
|
206
|
+
// // Create WebSocket connection to the test endpoint
|
|
207
|
+
// const wsUrl = new URL(
|
|
208
|
+
// `${endpoint}/registry/.test/inline-driver/connect-websocket`,
|
|
209
|
+
// );
|
|
210
|
+
// wsUrl.searchParams.set("actorQuery", JSON.stringify(actorQuery));
|
|
211
|
+
// if (params !== undefined)
|
|
212
|
+
// wsUrl.searchParams.set("params", JSON.stringify(params));
|
|
213
|
+
// wsUrl.searchParams.set("encodingKind", encodingKind);
|
|
214
|
+
//
|
|
215
|
+
// // Convert http/https to ws/wss
|
|
216
|
+
// const wsProtocol = wsUrl.protocol === "https:" ? "wss:" : "ws:";
|
|
217
|
+
// const finalWsUrl = `${wsProtocol}//${wsUrl.host}${wsUrl.pathname}${wsUrl.search}`;
|
|
218
|
+
//
|
|
219
|
+
// logger().debug({ msg: "connecting to websocket", url: finalWsUrl });
|
|
220
|
+
//
|
|
221
|
+
// // Create and return the WebSocket
|
|
222
|
+
// // Node & browser WebSocket types are incompatible
|
|
223
|
+
// const ws = new WebSocket(finalWsUrl, [
|
|
224
|
+
// // HACK: See packages/drivers/cloudflare-workers/src/websocket.ts
|
|
225
|
+
// "rivetkit",
|
|
226
|
+
// ]) as any;
|
|
227
|
+
//
|
|
228
|
+
// return ws;
|
|
229
|
+
// },
|
|
230
|
+
//
|
|
231
|
+
// connectSse: async (
|
|
232
|
+
// _c: HonoContext | undefined,
|
|
233
|
+
// actorQuery: ActorQuery,
|
|
234
|
+
// encodingKind: Encoding,
|
|
235
|
+
// params: unknown,
|
|
236
|
+
// ): Promise<UniversalEventSource> => {
|
|
237
|
+
// logger().debug({
|
|
238
|
+
// msg: "creating sse connection via test inline driver",
|
|
239
|
+
// actorQuery,
|
|
240
|
+
// encodingKind,
|
|
241
|
+
// params,
|
|
242
|
+
// });
|
|
243
|
+
//
|
|
244
|
+
// // Dynamically import EventSource if needed
|
|
245
|
+
// const EventSourceImport = await import("eventsource");
|
|
246
|
+
// // Handle both ES modules (default) and CommonJS export patterns
|
|
247
|
+
// const EventSourceConstructor =
|
|
248
|
+
// (EventSourceImport as any).default || EventSourceImport;
|
|
249
|
+
//
|
|
250
|
+
// // Encode parameters for the URL
|
|
251
|
+
// const actorQueryParam = encodeURIComponent(JSON.stringify(actorQuery));
|
|
252
|
+
// const encodingParam = encodeURIComponent(encodingKind);
|
|
253
|
+
// const paramsParam = params
|
|
254
|
+
// ? encodeURIComponent(JSON.stringify(params))
|
|
255
|
+
// : null;
|
|
256
|
+
//
|
|
257
|
+
// // Create SSE connection URL
|
|
258
|
+
// const sseUrl = new URL(
|
|
259
|
+
// `${endpoint}/registry/.test/inline-driver/connect-sse`,
|
|
260
|
+
// );
|
|
261
|
+
// sseUrl.searchParams.set("actorQueryRaw", actorQueryParam);
|
|
262
|
+
// sseUrl.searchParams.set("encodingKind", encodingParam);
|
|
263
|
+
// if (paramsParam) {
|
|
264
|
+
// sseUrl.searchParams.set("params", paramsParam);
|
|
265
|
+
// }
|
|
266
|
+
//
|
|
267
|
+
// logger().debug({ msg: "connecting to sse", url: sseUrl.toString() });
|
|
268
|
+
//
|
|
269
|
+
// // Create and return the EventSource
|
|
270
|
+
// const eventSource = new EventSourceConstructor(sseUrl.toString());
|
|
271
|
+
//
|
|
272
|
+
// // Wait for the connection to be established before returning
|
|
273
|
+
// await new Promise<void>((resolve, reject) => {
|
|
274
|
+
// eventSource.onopen = () => {
|
|
275
|
+
// logger().debug({ msg: "sse connection established" });
|
|
276
|
+
// resolve();
|
|
277
|
+
// };
|
|
278
|
+
//
|
|
279
|
+
// eventSource.onerror = (event: Event) => {
|
|
280
|
+
// logger().error({ msg: "sse connection failed", event });
|
|
281
|
+
// reject(new Error("Failed to establish SSE connection"));
|
|
282
|
+
// };
|
|
283
|
+
//
|
|
284
|
+
// // Set a timeout in case the connection never establishes
|
|
285
|
+
// setTimeout(() => {
|
|
286
|
+
// if (eventSource.readyState !== EventSourceConstructor.OPEN) {
|
|
287
|
+
// reject(new Error("SSE connection timed out"));
|
|
288
|
+
// }
|
|
289
|
+
// }, 10000); // 10 second timeout
|
|
290
|
+
// });
|
|
291
|
+
//
|
|
292
|
+
// return eventSource as UniversalEventSource;
|
|
293
|
+
// },
|
|
294
|
+
//
|
|
295
|
+
// sendHttpMessage: async (
|
|
296
|
+
// _c: HonoContext | undefined,
|
|
297
|
+
// actorId: string,
|
|
298
|
+
// encoding: Encoding,
|
|
299
|
+
// connectionId: string,
|
|
300
|
+
// connectionToken: string,
|
|
301
|
+
// message: protocol.ToServer,
|
|
302
|
+
// ): Promise<void> => {
|
|
303
|
+
// logger().debug({
|
|
304
|
+
// msg: "sending http message via test inline driver",
|
|
305
|
+
// actorId,
|
|
306
|
+
// encoding,
|
|
307
|
+
// connectionId,
|
|
308
|
+
// transport,
|
|
309
|
+
// });
|
|
310
|
+
//
|
|
311
|
+
// const result = await fetch(
|
|
312
|
+
// `${endpoint}/registry/.test/inline-driver/call`,
|
|
313
|
+
// {
|
|
314
|
+
// method: "POST",
|
|
315
|
+
// headers: {
|
|
316
|
+
// "Content-Type": "application/json",
|
|
317
|
+
// },
|
|
318
|
+
// body: JSON.stringify({
|
|
319
|
+
// encoding,
|
|
320
|
+
// transport,
|
|
321
|
+
// method: "sendHttpMessage",
|
|
322
|
+
// args: [
|
|
323
|
+
// undefined,
|
|
324
|
+
// actorId,
|
|
325
|
+
// encoding,
|
|
326
|
+
// connectionId,
|
|
327
|
+
// connectionToken,
|
|
328
|
+
// message,
|
|
329
|
+
// ],
|
|
330
|
+
// } satisfies TestInlineDriverCallRequest),
|
|
331
|
+
// },
|
|
332
|
+
// );
|
|
333
|
+
//
|
|
334
|
+
// if (!result.ok) {
|
|
335
|
+
// throw new Error(`Failed to send HTTP message: ${result.statusText}`);
|
|
336
|
+
// }
|
|
337
|
+
//
|
|
338
|
+
// // Discard response
|
|
339
|
+
// await result.body?.cancel();
|
|
340
|
+
// },
|
|
341
|
+
//
|
|
342
|
+
// rawHttpRequest: async (
|
|
343
|
+
// _c: HonoContext | undefined,
|
|
344
|
+
// actorQuery: ActorQuery,
|
|
345
|
+
// encoding: Encoding,
|
|
346
|
+
// params: unknown,
|
|
347
|
+
// path: string,
|
|
348
|
+
// init: RequestInit,
|
|
349
|
+
// ): Promise<Response> => {
|
|
350
|
+
// // Normalize path to match other drivers
|
|
351
|
+
// const normalizedPath = path.startsWith("/") ? path.slice(1) : path;
|
|
352
|
+
//
|
|
353
|
+
// logger().debug({
|
|
354
|
+
// msg: "sending raw http request via test inline driver",
|
|
355
|
+
// actorQuery,
|
|
356
|
+
// encoding,
|
|
357
|
+
// path: normalizedPath,
|
|
358
|
+
// });
|
|
359
|
+
//
|
|
360
|
+
// // Use the dedicated raw HTTP endpoint
|
|
361
|
+
// const url = `${endpoint}/registry/.test/inline-driver/raw-http/${normalizedPath}`;
|
|
362
|
+
//
|
|
363
|
+
// logger().debug({ msg: "rewriting http url", from: path, to: url });
|
|
364
|
+
//
|
|
365
|
+
// // Merge headers with our metadata
|
|
366
|
+
// const headers = new Headers(init.headers);
|
|
367
|
+
// headers.set(HEADER_ACTOR_QUERY, JSON.stringify(actorQuery));
|
|
368
|
+
// headers.set(HEADER_ENCODING, encoding);
|
|
369
|
+
// if (params !== undefined) {
|
|
370
|
+
// headers.set(HEADER_CONN_PARAMS, JSON.stringify(params));
|
|
371
|
+
// }
|
|
372
|
+
//
|
|
373
|
+
// // Forward the request directly
|
|
374
|
+
// const response = await fetch(url, {
|
|
375
|
+
// ...init,
|
|
376
|
+
// headers,
|
|
377
|
+
// });
|
|
378
|
+
//
|
|
379
|
+
// // Check if it's an error response from our handler
|
|
380
|
+
// if (
|
|
381
|
+
// !response.ok &&
|
|
382
|
+
// response.headers.get("content-type")?.includes("application/json")
|
|
383
|
+
// ) {
|
|
384
|
+
// try {
|
|
385
|
+
// // Clone the response to avoid consuming the body
|
|
386
|
+
// const clonedResponse = response.clone();
|
|
387
|
+
// const errorData = (await clonedResponse.json()) as any;
|
|
388
|
+
// if (errorData.error) {
|
|
389
|
+
// // Handle both error formats:
|
|
390
|
+
// // 1. { error: { code, message, metadata } } - structured format
|
|
391
|
+
// // 2. { error: "message" } - simple string format (from custom onFetch handlers)
|
|
392
|
+
// if (typeof errorData.error === "object") {
|
|
393
|
+
// throw new ClientActorError(
|
|
394
|
+
// errorData.error.code,
|
|
395
|
+
// errorData.error.message,
|
|
396
|
+
// errorData.error.metadata,
|
|
397
|
+
// );
|
|
398
|
+
// }
|
|
399
|
+
// // For simple string errors, just return the response as-is
|
|
400
|
+
// // This allows custom onFetch handlers to return their own error formats
|
|
401
|
+
// }
|
|
402
|
+
// } catch (e) {
|
|
403
|
+
// // If it's not our error format, just return the response as-is
|
|
404
|
+
// if (!(e instanceof ClientActorError)) {
|
|
405
|
+
// return response;
|
|
406
|
+
// }
|
|
407
|
+
// throw e;
|
|
408
|
+
// }
|
|
409
|
+
// }
|
|
410
|
+
//
|
|
411
|
+
// return response;
|
|
412
|
+
// },
|
|
413
|
+
//
|
|
414
|
+
// rawWebSocket: async (
|
|
415
|
+
// _c: HonoContext | undefined,
|
|
416
|
+
// actorQuery: ActorQuery,
|
|
417
|
+
// encoding: Encoding,
|
|
418
|
+
// params: unknown,
|
|
419
|
+
// path: string,
|
|
420
|
+
// protocols: string | string[] | undefined,
|
|
421
|
+
// ): Promise<WebSocket> => {
|
|
422
|
+
// logger().debug({ msg: "test inline driver rawWebSocket called" });
|
|
423
|
+
// const WebSocket = await importWebSocket();
|
|
424
|
+
//
|
|
425
|
+
// // Normalize path to match other drivers
|
|
426
|
+
// const normalizedPath = path.startsWith("/") ? path.slice(1) : path;
|
|
427
|
+
//
|
|
428
|
+
// logger().debug({
|
|
429
|
+
// msg: "creating raw websocket connection via test inline driver",
|
|
430
|
+
// actorQuery,
|
|
431
|
+
// encoding,
|
|
432
|
+
// path: normalizedPath,
|
|
433
|
+
// protocols,
|
|
434
|
+
// });
|
|
435
|
+
//
|
|
436
|
+
// // Create WebSocket connection to the test endpoint
|
|
437
|
+
// const wsUrl = new URL(
|
|
438
|
+
// `${endpoint}/registry/.test/inline-driver/raw-websocket`,
|
|
439
|
+
// );
|
|
440
|
+
// wsUrl.searchParams.set("actorQuery", JSON.stringify(actorQuery));
|
|
441
|
+
// if (params !== undefined)
|
|
442
|
+
// wsUrl.searchParams.set("params", JSON.stringify(params));
|
|
443
|
+
// wsUrl.searchParams.set("encodingKind", encoding);
|
|
444
|
+
// wsUrl.searchParams.set("path", normalizedPath);
|
|
445
|
+
// if (protocols !== undefined)
|
|
446
|
+
// wsUrl.searchParams.set("protocols", JSON.stringify(protocols));
|
|
447
|
+
//
|
|
448
|
+
// // Convert http/https to ws/wss
|
|
449
|
+
// const wsProtocol = wsUrl.protocol === "https:" ? "wss:" : "ws:";
|
|
450
|
+
// const finalWsUrl = `${wsProtocol}//${wsUrl.host}${wsUrl.pathname}${wsUrl.search}`;
|
|
451
|
+
//
|
|
452
|
+
// logger().debug({ msg: "connecting to raw websocket", url: finalWsUrl });
|
|
453
|
+
//
|
|
454
|
+
// logger().debug({
|
|
455
|
+
// msg: "rewriting websocket url",
|
|
456
|
+
// from: path,
|
|
457
|
+
// to: finalWsUrl,
|
|
458
|
+
// });
|
|
459
|
+
//
|
|
460
|
+
// // Create and return the WebSocket
|
|
461
|
+
// // Node & browser WebSocket types are incompatible
|
|
462
|
+
// const ws = new WebSocket(finalWsUrl, [
|
|
463
|
+
// // HACK: See packages/drivers/cloudflare-workers/src/websocket.ts
|
|
464
|
+
// "rivetkit",
|
|
465
|
+
// ]) as any;
|
|
466
|
+
//
|
|
467
|
+
// logger().debug({
|
|
468
|
+
// msg: "test inline driver created websocket",
|
|
469
|
+
// readyState: ws.readyState,
|
|
470
|
+
// url: ws.url,
|
|
471
|
+
// });
|
|
472
|
+
//
|
|
473
|
+
// return ws;
|
|
474
|
+
// },
|
|
475
|
+
};
|
|
476
|
+
}
|
|
477
|
+
async function makeInlineRequest(endpoint, encoding, transport, method, args) {
|
|
478
|
+
logger().debug({
|
|
479
|
+
msg: "sending inline request",
|
|
480
|
+
encoding,
|
|
481
|
+
transport,
|
|
482
|
+
method,
|
|
483
|
+
args
|
|
484
|
+
});
|
|
485
|
+
const response = await fetch(`${endpoint}/.test/inline-driver/call`, {
|
|
486
|
+
method: "POST",
|
|
487
|
+
headers: {
|
|
488
|
+
"Content-Type": "application/json"
|
|
489
|
+
},
|
|
490
|
+
body: cbor.encode({
|
|
491
|
+
encoding,
|
|
492
|
+
transport,
|
|
493
|
+
method,
|
|
494
|
+
args
|
|
495
|
+
})
|
|
496
|
+
});
|
|
497
|
+
if (!response.ok) {
|
|
498
|
+
throw new Error(`Failed to call inline ${method}: ${response.statusText}`);
|
|
499
|
+
}
|
|
500
|
+
const buffer = await response.arrayBuffer();
|
|
501
|
+
const callResponse = cbor.decode(
|
|
502
|
+
new Uint8Array(buffer)
|
|
503
|
+
);
|
|
504
|
+
if ("ok" in callResponse) {
|
|
505
|
+
return callResponse.ok;
|
|
506
|
+
} else if ("err" in callResponse) {
|
|
507
|
+
throw new (0, _chunkMRZS2J4Xcjs.ActorError)(
|
|
508
|
+
callResponse.err.group,
|
|
509
|
+
callResponse.err.code,
|
|
510
|
+
callResponse.err.message,
|
|
511
|
+
callResponse.err.metadata
|
|
512
|
+
);
|
|
513
|
+
} else {
|
|
514
|
+
_chunkIRMBWX36cjs.assertUnreachable.call(void 0, callResponse);
|
|
515
|
+
}
|
|
516
|
+
}
|
|
517
|
+
|
|
518
|
+
// src/driver-test-suite/utils.ts
|
|
50
519
|
var FAKE_TIME = /* @__PURE__ */ new Date("2024-01-01T00:00:00.000Z");
|
|
51
520
|
async function setupDriverTest(c, driverTestConfig) {
|
|
52
521
|
if (!driverTestConfig.useRealTimers) {
|
|
53
522
|
_vitest.vi.useFakeTimers();
|
|
54
523
|
_vitest.vi.setSystemTime(FAKE_TIME);
|
|
55
524
|
}
|
|
56
|
-
const
|
|
57
|
-
const { endpoint, namespace, runnerName, cleanup } = await driverTestConfig.start(projectPath);
|
|
525
|
+
const { endpoint, namespace, runnerName, cleanup } = await driverTestConfig.start();
|
|
58
526
|
c.onTestFinished(cleanup);
|
|
59
527
|
let client;
|
|
60
528
|
if (driverTestConfig.clientType === "http") {
|
|
61
|
-
client =
|
|
529
|
+
client = _chunkD7NWUCRKcjs.createClient.call(void 0, {
|
|
62
530
|
endpoint,
|
|
63
531
|
namespace,
|
|
64
532
|
runnerName,
|
|
65
533
|
transport: driverTestConfig.transport
|
|
66
534
|
});
|
|
67
535
|
} else if (driverTestConfig.clientType === "inline") {
|
|
68
|
-
|
|
536
|
+
const managerDriver = createTestInlineClientDriver(
|
|
537
|
+
endpoint,
|
|
538
|
+
"bare",
|
|
539
|
+
_nullishCoalesce(driverTestConfig.transport, () => ( "websocket"))
|
|
540
|
+
);
|
|
541
|
+
client = _chunkMRZS2J4Xcjs.createClientWithDriver.call(void 0, managerDriver);
|
|
69
542
|
} else {
|
|
70
|
-
|
|
543
|
+
_chunkIRMBWX36cjs.assertUnreachable.call(void 0, driverTestConfig.clientType);
|
|
71
544
|
}
|
|
72
545
|
if (!driverTestConfig.HACK_skipCleanupNet) {
|
|
73
546
|
c.onTestFinished(async () => await client.dispose());
|
|
@@ -79,7 +552,7 @@ async function setupDriverTest(c, driverTestConfig) {
|
|
|
79
552
|
}
|
|
80
553
|
async function waitFor(driverTestConfig, ms) {
|
|
81
554
|
if (driverTestConfig.useRealTimers) {
|
|
82
|
-
return new Promise((
|
|
555
|
+
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
83
556
|
} else {
|
|
84
557
|
_vitest.vi.advanceTimersByTime(ms);
|
|
85
558
|
return Promise.resolve();
|
|
@@ -215,11 +688,11 @@ function runActorConnTests(driverTestConfig) {
|
|
|
215
688
|
const handle = client.counter.getOrCreate(["test-mixed-rpc-ws"]);
|
|
216
689
|
const connection = handle.connect();
|
|
217
690
|
const receivedEvents = [];
|
|
218
|
-
const receivedEventsPromise = new Promise((
|
|
691
|
+
const receivedEventsPromise = new Promise((resolve) => {
|
|
219
692
|
connection.on("newCount", (count) => {
|
|
220
693
|
receivedEvents.push(count);
|
|
221
694
|
if (receivedEvents.includes(1) && receivedEvents.includes(6) && receivedEvents.includes(9))
|
|
222
|
-
|
|
695
|
+
resolve(void 0);
|
|
223
696
|
});
|
|
224
697
|
});
|
|
225
698
|
await connection.increment(1);
|
|
@@ -598,7 +1071,7 @@ function runActorScheduleTests(driverTestConfig) {
|
|
|
598
1071
|
|
|
599
1072
|
// fixtures/driver-test-suite/sleep.ts
|
|
600
1073
|
var SLEEP_TIMEOUT = 500;
|
|
601
|
-
var sleep =
|
|
1074
|
+
var sleep = _chunkMRZS2J4Xcjs.actor.call(void 0, {
|
|
602
1075
|
state: { startCount: 0, sleepCount: 0 },
|
|
603
1076
|
onStart: (c) => {
|
|
604
1077
|
c.state.startCount += 1;
|
|
@@ -624,7 +1097,7 @@ var sleep = _chunkVO7ZRVVDcjs.actor.call(void 0, {
|
|
|
624
1097
|
sleepTimeout: SLEEP_TIMEOUT
|
|
625
1098
|
}
|
|
626
1099
|
});
|
|
627
|
-
var sleepWithLongRpc =
|
|
1100
|
+
var sleepWithLongRpc = _chunkMRZS2J4Xcjs.actor.call(void 0, {
|
|
628
1101
|
state: { startCount: 0, sleepCount: 0 },
|
|
629
1102
|
createVars: () => ({}),
|
|
630
1103
|
onStart: (c) => {
|
|
@@ -653,7 +1126,7 @@ var sleepWithLongRpc = _chunkVO7ZRVVDcjs.actor.call(void 0, {
|
|
|
653
1126
|
sleepTimeout: SLEEP_TIMEOUT
|
|
654
1127
|
}
|
|
655
1128
|
});
|
|
656
|
-
var sleepWithRawHttp =
|
|
1129
|
+
var sleepWithRawHttp = _chunkMRZS2J4Xcjs.actor.call(void 0, {
|
|
657
1130
|
state: { startCount: 0, sleepCount: 0, requestCount: 0 },
|
|
658
1131
|
onStart: (c) => {
|
|
659
1132
|
c.state.startCount += 1;
|
|
@@ -667,7 +1140,7 @@ var sleepWithRawHttp = _chunkVO7ZRVVDcjs.actor.call(void 0, {
|
|
|
667
1140
|
if (url.pathname === "/long-request") {
|
|
668
1141
|
const duration = parseInt(url.searchParams.get("duration") || "1000");
|
|
669
1142
|
c.log.info({ msg: "starting long fetch request", duration });
|
|
670
|
-
await new Promise((
|
|
1143
|
+
await new Promise((resolve) => setTimeout(resolve, duration));
|
|
671
1144
|
c.log.info("finished long fetch request");
|
|
672
1145
|
return new Response(JSON.stringify({ completed: true }), {
|
|
673
1146
|
headers: { "Content-Type": "application/json" }
|
|
@@ -688,7 +1161,7 @@ var sleepWithRawHttp = _chunkVO7ZRVVDcjs.actor.call(void 0, {
|
|
|
688
1161
|
sleepTimeout: SLEEP_TIMEOUT
|
|
689
1162
|
}
|
|
690
1163
|
});
|
|
691
|
-
var sleepWithRawWebSocket =
|
|
1164
|
+
var sleepWithRawWebSocket = _chunkMRZS2J4Xcjs.actor.call(void 0, {
|
|
692
1165
|
state: { startCount: 0, sleepCount: 0, connectionCount: 0 },
|
|
693
1166
|
onStart: (c) => {
|
|
694
1167
|
c.state.startCount += 1;
|
|
@@ -751,7 +1224,7 @@ var sleepWithRawWebSocket = _chunkVO7ZRVVDcjs.actor.call(void 0, {
|
|
|
751
1224
|
sleepTimeout: SLEEP_TIMEOUT
|
|
752
1225
|
}
|
|
753
1226
|
});
|
|
754
|
-
var sleepWithNoSleepOption =
|
|
1227
|
+
var sleepWithNoSleepOption = _chunkMRZS2J4Xcjs.actor.call(void 0, {
|
|
755
1228
|
state: { startCount: 0, sleepCount: 0 },
|
|
756
1229
|
onStart: (c) => {
|
|
757
1230
|
c.state.startCount += 1;
|
|
@@ -908,7 +1381,7 @@ function runActorSleepTests(driverTestConfig) {
|
|
|
908
1381
|
_vitest.expect.call(void 0, startCount).toBe(1);
|
|
909
1382
|
}
|
|
910
1383
|
const waitPromise = new Promise(
|
|
911
|
-
(
|
|
1384
|
+
(resolve) => sleepActor.once("waiting", resolve)
|
|
912
1385
|
);
|
|
913
1386
|
const longRunningPromise = sleepActor.longRunningRpc();
|
|
914
1387
|
await waitPromise;
|
|
@@ -941,32 +1414,32 @@ function runActorSleepTests(driverTestConfig) {
|
|
|
941
1414
|
_vitest.expect.call(void 0, startCount).toBe(1);
|
|
942
1415
|
}
|
|
943
1416
|
const ws = await sleepActor.websocket();
|
|
944
|
-
await new Promise((
|
|
945
|
-
ws.onopen = () =>
|
|
1417
|
+
await new Promise((resolve, reject) => {
|
|
1418
|
+
ws.onopen = () => resolve();
|
|
946
1419
|
ws.onerror = reject;
|
|
947
1420
|
});
|
|
948
|
-
await new Promise((
|
|
1421
|
+
await new Promise((resolve) => {
|
|
949
1422
|
ws.onmessage = (event) => {
|
|
950
1423
|
const data = JSON.parse(event.data);
|
|
951
1424
|
if (data.type === "connected") {
|
|
952
|
-
|
|
1425
|
+
resolve();
|
|
953
1426
|
}
|
|
954
1427
|
};
|
|
955
1428
|
});
|
|
956
1429
|
await waitFor(driverTestConfig, SLEEP_TIMEOUT + 100);
|
|
957
1430
|
ws.send(JSON.stringify({ type: "getCounts" }));
|
|
958
|
-
const counts = await new Promise((
|
|
1431
|
+
const counts = await new Promise((resolve) => {
|
|
959
1432
|
ws.onmessage = (event) => {
|
|
960
1433
|
const data = JSON.parse(event.data);
|
|
961
1434
|
if (data.type === "counts") {
|
|
962
|
-
|
|
1435
|
+
resolve(data);
|
|
963
1436
|
}
|
|
964
1437
|
};
|
|
965
1438
|
});
|
|
966
1439
|
_vitest.expect.call(void 0, counts.sleepCount).toBe(0);
|
|
967
1440
|
_vitest.expect.call(void 0, counts.startCount).toBe(1);
|
|
968
1441
|
ws.close();
|
|
969
|
-
await new Promise((
|
|
1442
|
+
await new Promise((resolve) => setTimeout(resolve, 100));
|
|
970
1443
|
await waitFor(driverTestConfig, SLEEP_TIMEOUT + 100);
|
|
971
1444
|
{
|
|
972
1445
|
const { startCount, sleepCount } = await sleepActor.getCounts();
|
|
@@ -1119,15 +1592,8 @@ function runActorErrorHandlingTests(driverTestConfig) {
|
|
|
1119
1592
|
await handle.throwInternalError();
|
|
1120
1593
|
_vitest.expect.call(void 0, true).toBe(false);
|
|
1121
1594
|
} 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
|
-
}
|
|
1595
|
+
_vitest.expect.call(void 0, error.code).toBe(_chunk5QGQK44Lcjs.INTERNAL_ERROR_CODE);
|
|
1596
|
+
_vitest.expect.call(void 0, error.message).toBe(_chunk5QGQK44Lcjs.INTERNAL_ERROR_DESCRIPTION);
|
|
1131
1597
|
}
|
|
1132
1598
|
});
|
|
1133
1599
|
});
|
|
@@ -1465,11 +1931,11 @@ function runActorInlineClientTests(driverTestConfig) {
|
|
|
1465
1931
|
// src/driver-test-suite/tests/actor-inspector.ts
|
|
1466
1932
|
|
|
1467
1933
|
function runActorInspectorTests(driverTestConfig) {
|
|
1468
|
-
_vitest.describe.
|
|
1934
|
+
_vitest.describe.skip("Actor Inspector Tests", () => {
|
|
1469
1935
|
_vitest.describe.call(void 0, "Manager Inspector", () => {
|
|
1470
1936
|
_vitest.test.call(void 0, "should respond to ping", async (c) => {
|
|
1471
1937
|
const { endpoint } = await setupDriverTest(c, driverTestConfig);
|
|
1472
|
-
const http =
|
|
1938
|
+
const http = _chunkLZIBTLEYcjs.createManagerInspectorClient.call(void 0, `${endpoint}/inspect`, {
|
|
1473
1939
|
headers: {
|
|
1474
1940
|
Authorization: `Bearer token`
|
|
1475
1941
|
}
|
|
@@ -1483,7 +1949,7 @@ function runActorInspectorTests(driverTestConfig) {
|
|
|
1483
1949
|
const { client, endpoint } = await setupDriverTest(c, driverTestConfig);
|
|
1484
1950
|
await client.counter.create(["test-actor-1"]);
|
|
1485
1951
|
await client.counter.create(["test-actor-2"]);
|
|
1486
|
-
const http =
|
|
1952
|
+
const http = _chunkLZIBTLEYcjs.createManagerInspectorClient.call(void 0, `${endpoint}/inspect`, {
|
|
1487
1953
|
headers: {
|
|
1488
1954
|
Authorization: `Bearer token`
|
|
1489
1955
|
}
|
|
@@ -1506,7 +1972,7 @@ function runActorInspectorTests(driverTestConfig) {
|
|
|
1506
1972
|
const actorKey2 = ["test-cursor-2"];
|
|
1507
1973
|
await client.counter.create(actorKey1);
|
|
1508
1974
|
await client.counter.create(actorKey2);
|
|
1509
|
-
const http =
|
|
1975
|
+
const http = _chunkLZIBTLEYcjs.createManagerInspectorClient.call(void 0, `${endpoint}/inspect`, {
|
|
1510
1976
|
headers: {
|
|
1511
1977
|
Authorization: `Bearer token`
|
|
1512
1978
|
}
|
|
@@ -1531,7 +1997,7 @@ function runActorInspectorTests(driverTestConfig) {
|
|
|
1531
1997
|
});
|
|
1532
1998
|
_vitest.test.call(void 0, "should handle invalid limit parameter", async (c) => {
|
|
1533
1999
|
const { endpoint } = await setupDriverTest(c, driverTestConfig);
|
|
1534
|
-
const http =
|
|
2000
|
+
const http = _chunkLZIBTLEYcjs.createManagerInspectorClient.call(void 0, `${endpoint}/inspect`, {
|
|
1535
2001
|
headers: {
|
|
1536
2002
|
Authorization: `Bearer token`
|
|
1537
2003
|
}
|
|
@@ -1543,7 +2009,7 @@ function runActorInspectorTests(driverTestConfig) {
|
|
|
1543
2009
|
});
|
|
1544
2010
|
_vitest.test.call(void 0, "should create a new actor", async (c) => {
|
|
1545
2011
|
const { endpoint } = await setupDriverTest(c, driverTestConfig);
|
|
1546
|
-
const http =
|
|
2012
|
+
const http = _chunkLZIBTLEYcjs.createManagerInspectorClient.call(void 0, `${endpoint}/inspect`, {
|
|
1547
2013
|
headers: {
|
|
1548
2014
|
Authorization: `Bearer token`
|
|
1549
2015
|
}
|
|
@@ -1567,7 +2033,7 @@ function runActorInspectorTests(driverTestConfig) {
|
|
|
1567
2033
|
});
|
|
1568
2034
|
_vitest.test.call(void 0, "should get builds", async (c) => {
|
|
1569
2035
|
const { endpoint } = await setupDriverTest(c, driverTestConfig);
|
|
1570
|
-
const http =
|
|
2036
|
+
const http = _chunkLZIBTLEYcjs.createManagerInspectorClient.call(void 0, `${endpoint}/inspect`, {
|
|
1571
2037
|
headers: {
|
|
1572
2038
|
Authorization: `Bearer token`
|
|
1573
2039
|
}
|
|
@@ -1585,7 +2051,7 @@ function runActorInspectorTests(driverTestConfig) {
|
|
|
1585
2051
|
const { client, endpoint } = await setupDriverTest(c, driverTestConfig);
|
|
1586
2052
|
const handle = await client.counter.create(["test-get-by-id"]);
|
|
1587
2053
|
const actorId = await handle.resolve();
|
|
1588
|
-
const http =
|
|
2054
|
+
const http = _chunkLZIBTLEYcjs.createManagerInspectorClient.call(void 0, `${endpoint}/inspect`, {
|
|
1589
2055
|
headers: {
|
|
1590
2056
|
Authorization: `Bearer token`
|
|
1591
2057
|
}
|
|
@@ -1599,7 +2065,7 @@ function runActorInspectorTests(driverTestConfig) {
|
|
|
1599
2065
|
});
|
|
1600
2066
|
_vitest.test.call(void 0, "should return 404 for non-existent actor", async (c) => {
|
|
1601
2067
|
const { endpoint } = await setupDriverTest(c, driverTestConfig);
|
|
1602
|
-
const http =
|
|
2068
|
+
const http = _chunkLZIBTLEYcjs.createManagerInspectorClient.call(void 0, `${endpoint}/inspect`, {
|
|
1603
2069
|
headers: {
|
|
1604
2070
|
Authorization: `Bearer token`
|
|
1605
2071
|
}
|
|
@@ -1615,7 +2081,7 @@ function runActorInspectorTests(driverTestConfig) {
|
|
|
1615
2081
|
const { client, endpoint } = await setupDriverTest(c, driverTestConfig);
|
|
1616
2082
|
const handle = await client.counter.create(["test-bootstrap"]);
|
|
1617
2083
|
await handle.resolve();
|
|
1618
|
-
const http =
|
|
2084
|
+
const http = _chunkLZIBTLEYcjs.createManagerInspectorClient.call(void 0, `${endpoint}/inspect`, {
|
|
1619
2085
|
headers: {
|
|
1620
2086
|
Authorization: `Bearer token`
|
|
1621
2087
|
}
|
|
@@ -1637,10 +2103,10 @@ function runActorInspectorTests(driverTestConfig) {
|
|
|
1637
2103
|
_vitest.test.call(void 0, "should handle actor not found", async (c) => {
|
|
1638
2104
|
const { endpoint } = await setupDriverTest(c, driverTestConfig);
|
|
1639
2105
|
const actorId = "non-existing";
|
|
1640
|
-
const http =
|
|
2106
|
+
const http = _chunkLZIBTLEYcjs.createActorInspectorClient.call(void 0, `${endpoint}/actors/inspect`, {
|
|
1641
2107
|
headers: {
|
|
1642
2108
|
Authorization: `Bearer token`,
|
|
1643
|
-
[
|
|
2109
|
+
[_chunkIRMBWX36cjs.HEADER_ACTOR_QUERY]: JSON.stringify({
|
|
1644
2110
|
getForId: { name: "counter", actorId }
|
|
1645
2111
|
})
|
|
1646
2112
|
}
|
|
@@ -1652,10 +2118,10 @@ function runActorInspectorTests(driverTestConfig) {
|
|
|
1652
2118
|
const { client, endpoint } = await setupDriverTest(c, driverTestConfig);
|
|
1653
2119
|
const handle = await client.counter.create(["test-ping"]);
|
|
1654
2120
|
const actorId = await handle.resolve();
|
|
1655
|
-
const http =
|
|
2121
|
+
const http = _chunkLZIBTLEYcjs.createActorInspectorClient.call(void 0, `${endpoint}/actors/inspect`, {
|
|
1656
2122
|
headers: {
|
|
1657
2123
|
Authorization: `Bearer token`,
|
|
1658
|
-
[
|
|
2124
|
+
[_chunkIRMBWX36cjs.HEADER_ACTOR_QUERY]: JSON.stringify({
|
|
1659
2125
|
getForId: { name: "counter", actorId }
|
|
1660
2126
|
})
|
|
1661
2127
|
}
|
|
@@ -1670,10 +2136,10 @@ function runActorInspectorTests(driverTestConfig) {
|
|
|
1670
2136
|
const handle = await client.counter.create(["test-state"]);
|
|
1671
2137
|
const actorId = await handle.resolve();
|
|
1672
2138
|
await handle.increment(5);
|
|
1673
|
-
const http =
|
|
2139
|
+
const http = _chunkLZIBTLEYcjs.createActorInspectorClient.call(void 0, `${endpoint}/actors/inspect`, {
|
|
1674
2140
|
headers: {
|
|
1675
2141
|
Authorization: `Bearer token`,
|
|
1676
|
-
[
|
|
2142
|
+
[_chunkIRMBWX36cjs.HEADER_ACTOR_QUERY]: JSON.stringify({
|
|
1677
2143
|
getForId: { name: "counter", actorId }
|
|
1678
2144
|
})
|
|
1679
2145
|
}
|
|
@@ -1692,10 +2158,10 @@ function runActorInspectorTests(driverTestConfig) {
|
|
|
1692
2158
|
const { client, endpoint } = await setupDriverTest(c, driverTestConfig);
|
|
1693
2159
|
const handle = await client.counter.create(["test-state-replace"]);
|
|
1694
2160
|
const actorId = await handle.resolve();
|
|
1695
|
-
const http =
|
|
2161
|
+
const http = _chunkLZIBTLEYcjs.createActorInspectorClient.call(void 0, `${endpoint}/actors/inspect`, {
|
|
1696
2162
|
headers: {
|
|
1697
2163
|
Authorization: `Bearer token`,
|
|
1698
|
-
[
|
|
2164
|
+
[_chunkIRMBWX36cjs.HEADER_ACTOR_QUERY]: JSON.stringify({
|
|
1699
2165
|
getForId: { name: "counter", actorId }
|
|
1700
2166
|
})
|
|
1701
2167
|
}
|
|
@@ -1717,10 +2183,10 @@ function runActorInspectorTests(driverTestConfig) {
|
|
|
1717
2183
|
const handle = await client.counter.create(["test-state-patch"]);
|
|
1718
2184
|
const actorId = await handle.resolve();
|
|
1719
2185
|
await handle.increment(3);
|
|
1720
|
-
const http =
|
|
2186
|
+
const http = _chunkLZIBTLEYcjs.createActorInspectorClient.call(void 0, `${endpoint}/actors/inspect`, {
|
|
1721
2187
|
headers: {
|
|
1722
2188
|
Authorization: `Bearer token`,
|
|
1723
|
-
[
|
|
2189
|
+
[_chunkIRMBWX36cjs.HEADER_ACTOR_QUERY]: JSON.stringify({
|
|
1724
2190
|
getForId: { name: "counter", actorId }
|
|
1725
2191
|
})
|
|
1726
2192
|
}
|
|
@@ -1751,10 +2217,10 @@ function runActorInspectorTests(driverTestConfig) {
|
|
|
1751
2217
|
const actorId = await handle.resolve();
|
|
1752
2218
|
handle.connect();
|
|
1753
2219
|
await handle.increment(10);
|
|
1754
|
-
const http =
|
|
2220
|
+
const http = _chunkLZIBTLEYcjs.createActorInspectorClient.call(void 0, `${endpoint}/actors/inspect`, {
|
|
1755
2221
|
headers: {
|
|
1756
2222
|
Authorization: `Bearer token`,
|
|
1757
|
-
[
|
|
2223
|
+
[_chunkIRMBWX36cjs.HEADER_ACTOR_QUERY]: JSON.stringify({
|
|
1758
2224
|
getForId: { name: "counter", actorId }
|
|
1759
2225
|
})
|
|
1760
2226
|
}
|
|
@@ -1776,10 +2242,10 @@ function runActorInspectorTests(driverTestConfig) {
|
|
|
1776
2242
|
const actorId = await handle.resolve();
|
|
1777
2243
|
handle.connect();
|
|
1778
2244
|
await handle.increment(10);
|
|
1779
|
-
const http =
|
|
2245
|
+
const http = _chunkLZIBTLEYcjs.createActorInspectorClient.call(void 0, `${endpoint}/actors/inspect`, {
|
|
1780
2246
|
headers: {
|
|
1781
2247
|
Authorization: `Bearer token`,
|
|
1782
|
-
[
|
|
2248
|
+
[_chunkIRMBWX36cjs.HEADER_ACTOR_QUERY]: JSON.stringify({
|
|
1783
2249
|
getForId: { name: "counter", actorId }
|
|
1784
2250
|
})
|
|
1785
2251
|
}
|
|
@@ -1802,10 +2268,10 @@ function runActorInspectorTests(driverTestConfig) {
|
|
|
1802
2268
|
const actorId = await handle.resolve();
|
|
1803
2269
|
handle.connect();
|
|
1804
2270
|
await handle.increment(10);
|
|
1805
|
-
const http =
|
|
2271
|
+
const http = _chunkLZIBTLEYcjs.createActorInspectorClient.call(void 0, `${endpoint}/actors/inspect`, {
|
|
1806
2272
|
headers: {
|
|
1807
2273
|
Authorization: `Bearer token`,
|
|
1808
|
-
[
|
|
2274
|
+
[_chunkIRMBWX36cjs.HEADER_ACTOR_QUERY]: JSON.stringify({
|
|
1809
2275
|
getForId: { name: "counter", actorId }
|
|
1810
2276
|
})
|
|
1811
2277
|
}
|
|
@@ -1830,10 +2296,10 @@ function runActorInspectorTests(driverTestConfig) {
|
|
|
1830
2296
|
const { client, endpoint } = await setupDriverTest(c, driverTestConfig);
|
|
1831
2297
|
const handle = await client.counter.create(["test-rpcs"]);
|
|
1832
2298
|
const actorId = await handle.resolve();
|
|
1833
|
-
const http =
|
|
2299
|
+
const http = _chunkLZIBTLEYcjs.createActorInspectorClient.call(void 0, `${endpoint}/actors/inspect`, {
|
|
1834
2300
|
headers: {
|
|
1835
2301
|
Authorization: `Bearer token`,
|
|
1836
|
-
[
|
|
2302
|
+
[_chunkIRMBWX36cjs.HEADER_ACTOR_QUERY]: JSON.stringify({
|
|
1837
2303
|
getForId: { name: "counter", actorId }
|
|
1838
2304
|
})
|
|
1839
2305
|
}
|
|
@@ -1851,10 +2317,10 @@ function runActorInspectorTests(driverTestConfig) {
|
|
|
1851
2317
|
const { client, endpoint } = await setupDriverTest(c, driverTestConfig);
|
|
1852
2318
|
const handle = await client.counter.create(["test-db"]);
|
|
1853
2319
|
const actorId = await handle.resolve();
|
|
1854
|
-
const http =
|
|
2320
|
+
const http = _chunkLZIBTLEYcjs.createActorInspectorClient.call(void 0, `${endpoint}/actors/inspect`, {
|
|
1855
2321
|
headers: {
|
|
1856
2322
|
Authorization: `Bearer token`,
|
|
1857
|
-
[
|
|
2323
|
+
[_chunkIRMBWX36cjs.HEADER_ACTOR_QUERY]: JSON.stringify({
|
|
1858
2324
|
getForId: { name: "counter", actorId }
|
|
1859
2325
|
})
|
|
1860
2326
|
}
|
|
@@ -1875,10 +2341,10 @@ function runActorInspectorTests(driverTestConfig) {
|
|
|
1875
2341
|
const { client, endpoint } = await setupDriverTest(c, driverTestConfig);
|
|
1876
2342
|
const handle = await client.counter.create(["test-db-query"]);
|
|
1877
2343
|
const actorId = await handle.resolve();
|
|
1878
|
-
const http =
|
|
2344
|
+
const http = _chunkLZIBTLEYcjs.createActorInspectorClient.call(void 0, `${endpoint}/actors/inspect`, {
|
|
1879
2345
|
headers: {
|
|
1880
2346
|
Authorization: `Bearer token`,
|
|
1881
|
-
[
|
|
2347
|
+
[_chunkIRMBWX36cjs.HEADER_ACTOR_QUERY]: JSON.stringify({
|
|
1882
2348
|
getForId: { name: "counter", actorId }
|
|
1883
2349
|
})
|
|
1884
2350
|
}
|
|
@@ -2887,24 +3353,24 @@ function runRawWebSocketTests(driverTestConfig) {
|
|
|
2887
3353
|
const { client } = await setupDriverTest(c, driverTestConfig);
|
|
2888
3354
|
const actor2 = client.rawWebSocketActor.getOrCreate(["basic"]);
|
|
2889
3355
|
const ws = await actor2.websocket();
|
|
2890
|
-
await new Promise((
|
|
3356
|
+
await new Promise((resolve) => {
|
|
2891
3357
|
if (ws.readyState === WebSocket.OPEN) {
|
|
2892
|
-
|
|
3358
|
+
resolve();
|
|
2893
3359
|
} else {
|
|
2894
3360
|
ws.addEventListener(
|
|
2895
3361
|
"open",
|
|
2896
3362
|
() => {
|
|
2897
|
-
|
|
3363
|
+
resolve();
|
|
2898
3364
|
},
|
|
2899
3365
|
{ once: true }
|
|
2900
3366
|
);
|
|
2901
3367
|
}
|
|
2902
3368
|
});
|
|
2903
|
-
const welcomeMessage = await new Promise((
|
|
3369
|
+
const welcomeMessage = await new Promise((resolve, reject) => {
|
|
2904
3370
|
ws.addEventListener(
|
|
2905
3371
|
"message",
|
|
2906
3372
|
(event) => {
|
|
2907
|
-
|
|
3373
|
+
resolve(JSON.parse(event.data));
|
|
2908
3374
|
},
|
|
2909
3375
|
{ once: true }
|
|
2910
3376
|
);
|
|
@@ -2919,22 +3385,22 @@ function runRawWebSocketTests(driverTestConfig) {
|
|
|
2919
3385
|
const actor2 = client.rawWebSocketActor.getOrCreate(["echo"]);
|
|
2920
3386
|
const ws = await actor2.websocket();
|
|
2921
3387
|
if (ws.readyState !== WebSocket.OPEN) {
|
|
2922
|
-
await new Promise((
|
|
2923
|
-
ws.addEventListener("open", () =>
|
|
3388
|
+
await new Promise((resolve, reject) => {
|
|
3389
|
+
ws.addEventListener("open", () => resolve(), { once: true });
|
|
2924
3390
|
ws.addEventListener("close", reject);
|
|
2925
3391
|
});
|
|
2926
3392
|
}
|
|
2927
|
-
await new Promise((
|
|
2928
|
-
ws.addEventListener("message", () =>
|
|
3393
|
+
await new Promise((resolve, reject) => {
|
|
3394
|
+
ws.addEventListener("message", () => resolve(), { once: true });
|
|
2929
3395
|
ws.addEventListener("close", reject);
|
|
2930
3396
|
});
|
|
2931
3397
|
const testMessage = { test: "data", timestamp: Date.now() };
|
|
2932
3398
|
ws.send(JSON.stringify(testMessage));
|
|
2933
|
-
const echoMessage = await new Promise((
|
|
3399
|
+
const echoMessage = await new Promise((resolve, reject) => {
|
|
2934
3400
|
ws.addEventListener(
|
|
2935
3401
|
"message",
|
|
2936
3402
|
(event) => {
|
|
2937
|
-
|
|
3403
|
+
resolve(JSON.parse(event.data));
|
|
2938
3404
|
},
|
|
2939
3405
|
{ once: true }
|
|
2940
3406
|
);
|
|
@@ -2948,21 +3414,21 @@ function runRawWebSocketTests(driverTestConfig) {
|
|
|
2948
3414
|
const actor2 = client.rawWebSocketActor.getOrCreate(["ping"]);
|
|
2949
3415
|
const ws = await actor2.websocket();
|
|
2950
3416
|
if (ws.readyState !== WebSocket.OPEN) {
|
|
2951
|
-
await new Promise((
|
|
2952
|
-
ws.addEventListener("open", () =>
|
|
3417
|
+
await new Promise((resolve, reject) => {
|
|
3418
|
+
ws.addEventListener("open", () => resolve(), { once: true });
|
|
2953
3419
|
ws.addEventListener("close", reject);
|
|
2954
3420
|
});
|
|
2955
3421
|
}
|
|
2956
|
-
await new Promise((
|
|
2957
|
-
ws.addEventListener("message", () =>
|
|
3422
|
+
await new Promise((resolve, reject) => {
|
|
3423
|
+
ws.addEventListener("message", () => resolve(), { once: true });
|
|
2958
3424
|
ws.addEventListener("close", reject);
|
|
2959
3425
|
});
|
|
2960
3426
|
ws.send(JSON.stringify({ type: "ping" }));
|
|
2961
|
-
const pongMessage = await new Promise((
|
|
3427
|
+
const pongMessage = await new Promise((resolve, reject) => {
|
|
2962
3428
|
ws.addEventListener("message", (event) => {
|
|
2963
3429
|
const data = JSON.parse(event.data);
|
|
2964
3430
|
if (data.type === "pong") {
|
|
2965
|
-
|
|
3431
|
+
resolve(data);
|
|
2966
3432
|
}
|
|
2967
3433
|
});
|
|
2968
3434
|
ws.addEventListener("close", reject);
|
|
@@ -2975,23 +3441,23 @@ function runRawWebSocketTests(driverTestConfig) {
|
|
|
2975
3441
|
const { client } = await setupDriverTest(c, driverTestConfig);
|
|
2976
3442
|
const actor1 = client.rawWebSocketActor.getOrCreate(["stats"]);
|
|
2977
3443
|
const ws1 = await actor1.websocket();
|
|
2978
|
-
const ws1MessagePromise = new Promise((
|
|
2979
|
-
ws1.addEventListener("message", () =>
|
|
3444
|
+
const ws1MessagePromise = new Promise((resolve, reject) => {
|
|
3445
|
+
ws1.addEventListener("message", () => resolve(), { once: true });
|
|
2980
3446
|
ws1.addEventListener("close", reject);
|
|
2981
3447
|
});
|
|
2982
3448
|
await ws1MessagePromise;
|
|
2983
3449
|
const actor2 = client.rawWebSocketActor.get(["stats"]);
|
|
2984
3450
|
const ws2 = await actor2.websocket();
|
|
2985
|
-
const ws2MessagePromise = new Promise((
|
|
2986
|
-
ws2.addEventListener("message", () =>
|
|
3451
|
+
const ws2MessagePromise = new Promise((resolve, reject) => {
|
|
3452
|
+
ws2.addEventListener("message", () => resolve(), { once: true });
|
|
2987
3453
|
ws2.addEventListener("close", reject);
|
|
2988
3454
|
});
|
|
2989
3455
|
await Promise.all([ws1MessagePromise, ws2MessagePromise]);
|
|
2990
|
-
const pingPromise = new Promise((
|
|
3456
|
+
const pingPromise = new Promise((resolve, reject) => {
|
|
2991
3457
|
ws2.addEventListener("message", (event) => {
|
|
2992
3458
|
const data = JSON.parse(event.data);
|
|
2993
3459
|
if (data.type === "pong") {
|
|
2994
|
-
|
|
3460
|
+
resolve(void 0);
|
|
2995
3461
|
}
|
|
2996
3462
|
});
|
|
2997
3463
|
ws2.addEventListener("close", reject);
|
|
@@ -3000,11 +3466,11 @@ function runRawWebSocketTests(driverTestConfig) {
|
|
|
3000
3466
|
ws1.send(JSON.stringify({ data: "test3" }));
|
|
3001
3467
|
ws2.send(JSON.stringify({ type: "ping" }));
|
|
3002
3468
|
await pingPromise;
|
|
3003
|
-
const statsPromise = new Promise((
|
|
3469
|
+
const statsPromise = new Promise((resolve, reject) => {
|
|
3004
3470
|
ws1.addEventListener("message", (event) => {
|
|
3005
3471
|
const data = JSON.parse(event.data);
|
|
3006
3472
|
if (data.type === "stats") {
|
|
3007
|
-
|
|
3473
|
+
resolve(data);
|
|
3008
3474
|
}
|
|
3009
3475
|
});
|
|
3010
3476
|
ws1.addEventListener("close", reject);
|
|
@@ -3024,18 +3490,18 @@ function runRawWebSocketTests(driverTestConfig) {
|
|
|
3024
3490
|
const actor2 = client.rawWebSocketBinaryActor.getOrCreate(["binary"]);
|
|
3025
3491
|
const ws = await actor2.websocket();
|
|
3026
3492
|
if (ws.readyState !== WebSocket.OPEN) {
|
|
3027
|
-
await new Promise((
|
|
3028
|
-
ws.addEventListener("open", () =>
|
|
3493
|
+
await new Promise((resolve, reject) => {
|
|
3494
|
+
ws.addEventListener("open", () => resolve(), { once: true });
|
|
3029
3495
|
ws.addEventListener("close", reject);
|
|
3030
3496
|
});
|
|
3031
3497
|
}
|
|
3032
3498
|
const receiveBinaryMessage = async () => {
|
|
3033
3499
|
const response = await new Promise(
|
|
3034
|
-
(
|
|
3500
|
+
(resolve, reject) => {
|
|
3035
3501
|
ws.addEventListener(
|
|
3036
3502
|
"message",
|
|
3037
3503
|
(event) => {
|
|
3038
|
-
|
|
3504
|
+
resolve(event.data);
|
|
3039
3505
|
},
|
|
3040
3506
|
{ once: true }
|
|
3041
3507
|
);
|
|
@@ -3064,18 +3530,18 @@ function runRawWebSocketTests(driverTestConfig) {
|
|
|
3064
3530
|
const { client } = await setupDriverTest(c, driverTestConfig);
|
|
3065
3531
|
const actor2 = client.rawWebSocketActor.getOrCreate(["paths"]);
|
|
3066
3532
|
const ws = await actor2.websocket("custom/path");
|
|
3067
|
-
await new Promise((
|
|
3533
|
+
await new Promise((resolve, reject) => {
|
|
3068
3534
|
ws.addEventListener("open", () => {
|
|
3069
|
-
|
|
3535
|
+
resolve();
|
|
3070
3536
|
});
|
|
3071
3537
|
ws.addEventListener("error", reject);
|
|
3072
3538
|
ws.addEventListener("close", reject);
|
|
3073
3539
|
});
|
|
3074
|
-
const welcomeMessage = await new Promise((
|
|
3540
|
+
const welcomeMessage = await new Promise((resolve) => {
|
|
3075
3541
|
ws.addEventListener(
|
|
3076
3542
|
"message",
|
|
3077
3543
|
(event) => {
|
|
3078
|
-
|
|
3544
|
+
resolve(JSON.parse(event.data));
|
|
3079
3545
|
},
|
|
3080
3546
|
{ once: true }
|
|
3081
3547
|
);
|
|
@@ -3090,15 +3556,15 @@ function runRawWebSocketTests(driverTestConfig) {
|
|
|
3090
3556
|
params: testParams
|
|
3091
3557
|
});
|
|
3092
3558
|
const ws = await actor2.websocket();
|
|
3093
|
-
await new Promise((
|
|
3094
|
-
ws.addEventListener("open", () =>
|
|
3559
|
+
await new Promise((resolve) => {
|
|
3560
|
+
ws.addEventListener("open", () => resolve(), { once: true });
|
|
3095
3561
|
});
|
|
3096
3562
|
ws.send(JSON.stringify({ type: "getAuthData" }));
|
|
3097
|
-
const response = await new Promise((
|
|
3563
|
+
const response = await new Promise((resolve, reject) => {
|
|
3098
3564
|
ws.addEventListener("message", (event) => {
|
|
3099
3565
|
const data = JSON.parse(event.data);
|
|
3100
3566
|
if (data.type === "authData") {
|
|
3101
|
-
|
|
3567
|
+
resolve(data);
|
|
3102
3568
|
}
|
|
3103
3569
|
});
|
|
3104
3570
|
ws.addEventListener("close", reject);
|
|
@@ -3111,15 +3577,15 @@ function runRawWebSocketTests(driverTestConfig) {
|
|
|
3111
3577
|
const actor2 = client.rawWebSocketActor.getOrCreate(["close-test"]);
|
|
3112
3578
|
const ws = await actor2.websocket();
|
|
3113
3579
|
if (ws.readyState !== WebSocket.OPEN) {
|
|
3114
|
-
await new Promise((
|
|
3115
|
-
ws.addEventListener("open", () =>
|
|
3580
|
+
await new Promise((resolve, reject) => {
|
|
3581
|
+
ws.addEventListener("open", () => resolve(), { once: true });
|
|
3116
3582
|
ws.addEventListener("close", reject);
|
|
3117
3583
|
});
|
|
3118
3584
|
}
|
|
3119
3585
|
const initialStats = await actor2.getStats();
|
|
3120
3586
|
_vitest.expect.call(void 0, initialStats.connectionCount).toBe(1);
|
|
3121
|
-
const closePromise = new Promise((
|
|
3122
|
-
ws.addEventListener("close", () =>
|
|
3587
|
+
const closePromise = new Promise((resolve) => {
|
|
3588
|
+
ws.addEventListener("close", () => resolve(), { once: true });
|
|
3123
3589
|
});
|
|
3124
3590
|
ws.close();
|
|
3125
3591
|
await closePromise;
|
|
@@ -3129,7 +3595,7 @@ function runRawWebSocketTests(driverTestConfig) {
|
|
|
3129
3595
|
if (finalStats.connectionCount === 0) {
|
|
3130
3596
|
break;
|
|
3131
3597
|
}
|
|
3132
|
-
await new Promise((
|
|
3598
|
+
await new Promise((resolve) => setTimeout(resolve, 50));
|
|
3133
3599
|
}
|
|
3134
3600
|
_vitest.expect.call(void 0, finalStats == null ? void 0 : finalStats.connectionCount).toBe(0);
|
|
3135
3601
|
});
|
|
@@ -3137,15 +3603,15 @@ function runRawWebSocketTests(driverTestConfig) {
|
|
|
3137
3603
|
const { client } = await setupDriverTest(c, driverTestConfig);
|
|
3138
3604
|
const actor2 = client.rawWebSocketActor.getOrCreate(["open-close-test"]);
|
|
3139
3605
|
const ws1 = await actor2.websocket();
|
|
3140
|
-
await new Promise((
|
|
3141
|
-
ws1.addEventListener("open", () =>
|
|
3606
|
+
await new Promise((resolve, reject) => {
|
|
3607
|
+
ws1.addEventListener("open", () => resolve(), { once: true });
|
|
3142
3608
|
ws1.addEventListener("close", reject);
|
|
3143
3609
|
});
|
|
3144
|
-
const welcome1 = await new Promise((
|
|
3610
|
+
const welcome1 = await new Promise((resolve, reject) => {
|
|
3145
3611
|
ws1.addEventListener(
|
|
3146
3612
|
"message",
|
|
3147
3613
|
(event) => {
|
|
3148
|
-
|
|
3614
|
+
resolve(JSON.parse(event.data));
|
|
3149
3615
|
},
|
|
3150
3616
|
{ once: true }
|
|
3151
3617
|
);
|
|
@@ -3154,15 +3620,15 @@ function runRawWebSocketTests(driverTestConfig) {
|
|
|
3154
3620
|
_vitest.expect.call(void 0, welcome1.type).toBe("welcome");
|
|
3155
3621
|
_vitest.expect.call(void 0, welcome1.connectionCount).toBe(1);
|
|
3156
3622
|
const ws2 = await actor2.websocket();
|
|
3157
|
-
await new Promise((
|
|
3158
|
-
ws2.addEventListener("open", () =>
|
|
3623
|
+
await new Promise((resolve, reject) => {
|
|
3624
|
+
ws2.addEventListener("open", () => resolve(), { once: true });
|
|
3159
3625
|
ws2.addEventListener("close", reject);
|
|
3160
3626
|
});
|
|
3161
|
-
const welcome2 = await new Promise((
|
|
3627
|
+
const welcome2 = await new Promise((resolve, reject) => {
|
|
3162
3628
|
ws2.addEventListener(
|
|
3163
3629
|
"message",
|
|
3164
3630
|
(event) => {
|
|
3165
|
-
|
|
3631
|
+
resolve(JSON.parse(event.data));
|
|
3166
3632
|
},
|
|
3167
3633
|
{ once: true }
|
|
3168
3634
|
);
|
|
@@ -3173,8 +3639,8 @@ function runRawWebSocketTests(driverTestConfig) {
|
|
|
3173
3639
|
const midStats = await actor2.getStats();
|
|
3174
3640
|
_vitest.expect.call(void 0, midStats.connectionCount).toBe(2);
|
|
3175
3641
|
ws1.close();
|
|
3176
|
-
await new Promise((
|
|
3177
|
-
ws1.addEventListener("close", () =>
|
|
3642
|
+
await new Promise((resolve) => {
|
|
3643
|
+
ws1.addEventListener("close", () => resolve(), { once: true });
|
|
3178
3644
|
});
|
|
3179
3645
|
let afterFirstClose;
|
|
3180
3646
|
for (let i = 0; i < 20; i++) {
|
|
@@ -3182,12 +3648,12 @@ function runRawWebSocketTests(driverTestConfig) {
|
|
|
3182
3648
|
if (afterFirstClose.connectionCount === 1) {
|
|
3183
3649
|
break;
|
|
3184
3650
|
}
|
|
3185
|
-
await new Promise((
|
|
3651
|
+
await new Promise((resolve) => setTimeout(resolve, 50));
|
|
3186
3652
|
}
|
|
3187
3653
|
_vitest.expect.call(void 0, afterFirstClose == null ? void 0 : afterFirstClose.connectionCount).toBe(1);
|
|
3188
3654
|
ws2.close();
|
|
3189
|
-
await new Promise((
|
|
3190
|
-
ws2.addEventListener("close", () =>
|
|
3655
|
+
await new Promise((resolve) => {
|
|
3656
|
+
ws2.addEventListener("close", () => resolve(), { once: true });
|
|
3191
3657
|
});
|
|
3192
3658
|
let finalStats;
|
|
3193
3659
|
for (let i = 0; i < 20; i++) {
|
|
@@ -3195,7 +3661,7 @@ function runRawWebSocketTests(driverTestConfig) {
|
|
|
3195
3661
|
if (finalStats.connectionCount === 0) {
|
|
3196
3662
|
break;
|
|
3197
3663
|
}
|
|
3198
|
-
await new Promise((
|
|
3664
|
+
await new Promise((resolve) => setTimeout(resolve, 50));
|
|
3199
3665
|
}
|
|
3200
3666
|
_vitest.expect.call(void 0, finalStats == null ? void 0 : finalStats.connectionCount).toBe(0);
|
|
3201
3667
|
});
|
|
@@ -3203,15 +3669,15 @@ function runRawWebSocketTests(driverTestConfig) {
|
|
|
3203
3669
|
const { client } = await setupDriverTest(c, driverTestConfig);
|
|
3204
3670
|
const actor2 = client.rawWebSocketActor.getOrCreate(["query-params"]);
|
|
3205
3671
|
const ws = await actor2.websocket("api/v1/stream?token=abc123&user=test");
|
|
3206
|
-
await new Promise((
|
|
3207
|
-
ws.addEventListener("open", () =>
|
|
3672
|
+
await new Promise((resolve, reject) => {
|
|
3673
|
+
ws.addEventListener("open", () => resolve(), { once: true });
|
|
3208
3674
|
ws.addEventListener("error", reject);
|
|
3209
3675
|
});
|
|
3210
|
-
const requestInfoPromise = new Promise((
|
|
3676
|
+
const requestInfoPromise = new Promise((resolve, reject) => {
|
|
3211
3677
|
ws.addEventListener("message", (event) => {
|
|
3212
3678
|
const data = JSON.parse(event.data);
|
|
3213
3679
|
if (data.type === "requestInfo") {
|
|
3214
|
-
|
|
3680
|
+
resolve(data);
|
|
3215
3681
|
}
|
|
3216
3682
|
});
|
|
3217
3683
|
ws.addEventListener("close", reject);
|
|
@@ -3362,7 +3828,7 @@ async function createTestRuntime(registryPath, driverFactory) {
|
|
|
3362
3828
|
};
|
|
3363
3829
|
} else {
|
|
3364
3830
|
let upgradeWebSocket;
|
|
3365
|
-
const config =
|
|
3831
|
+
const config = _chunkRM2SVURRcjs.RunConfigSchema.parse({
|
|
3366
3832
|
driver,
|
|
3367
3833
|
getUpgradeWebSocket: () => upgradeWebSocket,
|
|
3368
3834
|
inspector: {
|
|
@@ -3371,7 +3837,7 @@ async function createTestRuntime(registryPath, driverFactory) {
|
|
|
3371
3837
|
}
|
|
3372
3838
|
});
|
|
3373
3839
|
const managerDriver = driver.manager(registry.config, config);
|
|
3374
|
-
const { router } =
|
|
3840
|
+
const { router } = _chunkMRZS2J4Xcjs.createManagerRouter.call(void 0,
|
|
3375
3841
|
registry.config,
|
|
3376
3842
|
config,
|
|
3377
3843
|
managerDriver,
|
|
@@ -3379,7 +3845,7 @@ async function createTestRuntime(registryPath, driverFactory) {
|
|
|
3379
3845
|
);
|
|
3380
3846
|
const nodeWebSocket = _nodews.createNodeWebSocket.call(void 0, { app: router });
|
|
3381
3847
|
upgradeWebSocket = nodeWebSocket.upgradeWebSocket;
|
|
3382
|
-
const port = await
|
|
3848
|
+
const port = await _chunkFGFT4FVXcjs.getPort.call(void 0, );
|
|
3383
3849
|
const server = _nodeserver.serve.call(void 0, {
|
|
3384
3850
|
fetch: router.fetch,
|
|
3385
3851
|
hostname: "127.0.0.1",
|
|
@@ -3393,7 +3859,7 @@ async function createTestRuntime(registryPath, driverFactory) {
|
|
|
3393
3859
|
const serverEndpoint = `http://127.0.0.1:${port}`;
|
|
3394
3860
|
logger().info({ msg: "test serer listening", port });
|
|
3395
3861
|
const cleanup = async () => {
|
|
3396
|
-
await new Promise((
|
|
3862
|
+
await new Promise((resolve) => server.close(() => resolve(void 0)));
|
|
3397
3863
|
await (driverCleanup == null ? void 0 : driverCleanup());
|
|
3398
3864
|
};
|
|
3399
3865
|
return {
|