@c9up/ream 0.2.5 → 0.2.7
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/README.md +3 -9
- package/dist/HttpKernel.js +2 -2
- package/dist/HttpKernel.js.map +1 -1
- package/dist/Ignitor.d.ts +3 -3
- package/dist/Ignitor.d.ts.map +1 -1
- package/dist/Ignitor.js +50 -0
- package/dist/Ignitor.js.map +1 -1
- package/dist/bootstrap/hyper-server.js.map +1 -1
- package/dist/helpers/compose.d.ts +30 -0
- package/dist/helpers/compose.d.ts.map +1 -0
- package/dist/helpers/compose.js +27 -0
- package/dist/helpers/compose.js.map +1 -0
- package/dist/helpers/index.d.ts +1 -0
- package/dist/helpers/index.d.ts.map +1 -1
- package/dist/helpers/index.js +1 -0
- package/dist/helpers/index.js.map +1 -1
- package/dist/helpers/is.d.ts +69 -16
- package/dist/helpers/is.d.ts.map +1 -1
- package/dist/helpers/is.js +80 -20
- package/dist/helpers/is.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/middleware/Pipeline.d.ts +9 -3
- package/dist/middleware/Pipeline.d.ts.map +1 -1
- package/dist/middleware/Pipeline.js +10 -4
- package/dist/middleware/Pipeline.js.map +1 -1
- package/dist/rpc/RpcRouter.js +2 -2
- package/dist/rpc/RpcRouter.js.map +1 -1
- package/dist/scheduler/Scheduler.d.ts.map +1 -1
- package/dist/scheduler/Scheduler.js +12 -4
- package/dist/scheduler/Scheduler.js.map +1 -1
- package/dist/services/app.d.ts +6 -0
- package/dist/services/app.d.ts.map +1 -1
- package/dist/services/app.js +8 -0
- package/dist/services/app.js.map +1 -1
- package/dist/services/config.d.ts +15 -0
- package/dist/services/config.d.ts.map +1 -0
- package/dist/services/config.js +18 -0
- package/dist/services/config.js.map +1 -0
- package/dist/services/encryption.d.ts +23 -0
- package/dist/services/encryption.d.ts.map +1 -0
- package/dist/services/encryption.js +33 -0
- package/dist/services/encryption.js.map +1 -0
- package/dist/services/logger.d.ts +29 -0
- package/dist/services/logger.d.ts.map +1 -0
- package/dist/services/logger.js +40 -0
- package/dist/services/logger.js.map +1 -0
- package/dist/services/urlBuilder.d.ts +21 -0
- package/dist/services/urlBuilder.d.ts.map +1 -0
- package/dist/services/urlBuilder.js +34 -0
- package/dist/services/urlBuilder.js.map +1 -0
- package/dist/session/Session.js.map +1 -1
- package/dist/testing/ApiResponse.d.ts +44 -44
- package/dist/testing/ApiResponse.d.ts.map +1 -1
- package/dist/testing/ApiResponse.js +48 -48
- package/dist/testing/ApiResponse.js.map +1 -1
- package/dist/testing/RequestBuilder.d.ts +39 -39
- package/dist/testing/RequestBuilder.d.ts.map +1 -1
- package/dist/testing/RequestBuilder.js +49 -49
- package/dist/testing/RequestBuilder.js.map +1 -1
- package/dist/testing/TestClient.d.ts +23 -8
- package/dist/testing/TestClient.d.ts.map +1 -1
- package/dist/testing/TestClient.js +52 -11
- package/dist/testing/TestClient.js.map +1 -1
- package/dist/testing/testUtils.d.ts +62 -0
- package/dist/testing/testUtils.d.ts.map +1 -0
- package/dist/testing/testUtils.js +77 -0
- package/dist/testing/testUtils.js.map +1 -0
- package/events.win32-x64-msvc.node +0 -0
- package/index.win32-x64-msvc.node +0 -0
- package/package.json +21 -1
- package/scheduler.win32-x64-msvc.node +0 -0
- package/src/HttpKernel.ts +2 -2
- package/src/Ignitor.ts +59 -4
- package/src/bootstrap/hyper-server.ts +1 -1
- package/src/helpers/compose.ts +84 -0
- package/src/helpers/index.ts +1 -0
- package/src/helpers/is.ts +88 -22
- package/src/index.ts +2 -2
- package/src/middleware/Pipeline.ts +10 -4
- package/src/rpc/RpcRouter.ts +2 -2
- package/src/scheduler/Scheduler.ts +10 -4
- package/src/services/app.ts +9 -0
- package/src/services/config.ts +24 -0
- package/src/services/encryption.ts +42 -0
- package/src/services/logger.ts +49 -0
- package/src/services/urlBuilder.ts +41 -0
- package/src/session/Session.ts +2 -2
- package/src/testing/ApiResponse.ts +52 -52
- package/src/testing/RequestBuilder.ts +55 -55
- package/src/testing/TestClient.ts +55 -13
- package/src/testing/testUtils.ts +90 -0
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Fluent HTTP request builder with assertion methods (
|
|
2
|
+
* Fluent HTTP request builder with assertion methods (`helix` model).
|
|
3
3
|
*
|
|
4
4
|
* await client
|
|
5
5
|
* .get('/api/users/42')
|
|
@@ -23,7 +23,7 @@ export { ApiResponse, deepEqual, partialMatch, } from './ApiResponse.js';
|
|
|
23
23
|
const CSRF_COOKIE_NAME = 'XSRF-TOKEN';
|
|
24
24
|
/** Header the client echoes the token back in (Axios/Angular default). */
|
|
25
25
|
const CSRF_HEADER_NAME = 'x-xsrf-token';
|
|
26
|
-
/** Content-type / accept shorthands — mirrors
|
|
26
|
+
/** Content-type / accept shorthands — mirrors helix's `.type()`/`.accept()`. */
|
|
27
27
|
const TYPE_SHORTHANDS = {
|
|
28
28
|
json: 'application/json',
|
|
29
29
|
form: 'application/x-www-form-urlencoded',
|
|
@@ -36,14 +36,14 @@ const TYPE_SHORTHANDS = {
|
|
|
36
36
|
function resolveMime(type) {
|
|
37
37
|
return TYPE_SHORTHANDS[type] ?? type;
|
|
38
38
|
}
|
|
39
|
-
/** HTTP statuses that trigger redirect-following (
|
|
39
|
+
/** HTTP statuses that trigger redirect-following (helix `.redirects()`). */
|
|
40
40
|
const REDIRECT_STATUSES = new Set([301, 302, 303, 307, 308]);
|
|
41
|
-
/**
|
|
41
|
+
/** helix follows 5 redirects by default. */
|
|
42
42
|
const DEFAULT_MAX_REDIRECTS = 5;
|
|
43
|
-
/** Consumer-registered macros/getters (
|
|
43
|
+
/** Consumer-registered macros/getters (helix `ApiRequest.macro`/`.getter`). */
|
|
44
44
|
const requestMacros = new Map();
|
|
45
45
|
const requestGetters = new Map();
|
|
46
|
-
/** Consumer-registered request body serializers (
|
|
46
|
+
/** Consumer-registered request body serializers (helix `ApiRequest.addSerializer`), by name. */
|
|
47
47
|
const requestSerializers = new Map();
|
|
48
48
|
// biome-ignore lint/suspicious/noUnsafeDeclarationMerging: the merged interface (StatusAssertions) types the status-shortcut asserts attached from STATUS_ASSERTIONS at load — the same generated-method pattern as EonSchema/Macroable (AdonisJS parity); every member is implemented, so the merge is safe.
|
|
49
49
|
export class RequestBuilder {
|
|
@@ -62,7 +62,7 @@ export class RequestBuilder {
|
|
|
62
62
|
#timeoutMs;
|
|
63
63
|
#maxRedirects = DEFAULT_MAX_REDIRECTS;
|
|
64
64
|
#sent = null;
|
|
65
|
-
// Lazy assertions (
|
|
65
|
+
// Lazy assertions (helix model): each `assert*`/`expect*` registers a check and
|
|
66
66
|
// returns `this` synchronously; the checks run in order when the builder is
|
|
67
67
|
// awaited (`then`) — after the single send.
|
|
68
68
|
#checks = [];
|
|
@@ -81,7 +81,7 @@ export class RequestBuilder {
|
|
|
81
81
|
return this;
|
|
82
82
|
}
|
|
83
83
|
header(name, value) {
|
|
84
|
-
//
|
|
84
|
+
// helix accepts string | string[]; a list is joined into one header value.
|
|
85
85
|
this.#headers[name.toLowerCase()] = Array.isArray(value) ? value.join(', ') : value;
|
|
86
86
|
return this;
|
|
87
87
|
}
|
|
@@ -90,7 +90,7 @@ export class RequestBuilder {
|
|
|
90
90
|
this.#headers['content-type'] = 'application/json';
|
|
91
91
|
return this;
|
|
92
92
|
}
|
|
93
|
-
/**
|
|
93
|
+
/** helix `.unsafeJson()` — set a JSON body without any transform (alias of {@link json}). */
|
|
94
94
|
unsafeJson(data) {
|
|
95
95
|
return this.json(data);
|
|
96
96
|
}
|
|
@@ -101,7 +101,7 @@ export class RequestBuilder {
|
|
|
101
101
|
return this;
|
|
102
102
|
}
|
|
103
103
|
form(data) {
|
|
104
|
-
// Array values repeat the key (`a=1&a=2`) —
|
|
104
|
+
// Array values repeat the key (`a=1&a=2`) — helix parity.
|
|
105
105
|
const pairs = [];
|
|
106
106
|
for (const [k, v] of Object.entries(data)) {
|
|
107
107
|
const values = Array.isArray(v) ? v : [v];
|
|
@@ -113,12 +113,12 @@ export class RequestBuilder {
|
|
|
113
113
|
this.#headers['content-type'] = 'application/x-www-form-urlencoded';
|
|
114
114
|
return this;
|
|
115
115
|
}
|
|
116
|
-
/**
|
|
116
|
+
/** helix `.unsafeForm()` — set a urlencoded body without transform (alias of {@link form}). */
|
|
117
117
|
unsafeForm(data) {
|
|
118
118
|
return this.form(data);
|
|
119
119
|
}
|
|
120
120
|
/**
|
|
121
|
-
* Add a `multipart/form-data` field — mirrors Adonis/
|
|
121
|
+
* Add a `multipart/form-data` field — mirrors Adonis/helix's `.field()`. Accepts
|
|
122
122
|
* a string/number/boolean, a Buffer, a Blob, a Readable stream, or an array of
|
|
123
123
|
* these (repeated part). Calling `.field()`/`.fields()`/`.file()` switches the
|
|
124
124
|
* body to multipart; the boundary + `Content-Type` header are produced at send
|
|
@@ -135,7 +135,7 @@ export class RequestBuilder {
|
|
|
135
135
|
}
|
|
136
136
|
return this;
|
|
137
137
|
}
|
|
138
|
-
/** Add several multipart fields at once —
|
|
138
|
+
/** Add several multipart fields at once — helix `.fields()`. */
|
|
139
139
|
fields(map) {
|
|
140
140
|
for (const [name, value] of Object.entries(map)) {
|
|
141
141
|
this.field(name, value);
|
|
@@ -143,10 +143,10 @@ export class RequestBuilder {
|
|
|
143
143
|
return this;
|
|
144
144
|
}
|
|
145
145
|
/**
|
|
146
|
-
* Attach a file as a `multipart/form-data` part — mirrors Adonis/
|
|
146
|
+
* Attach a file as a `multipart/form-data` part — mirrors Adonis/helix's
|
|
147
147
|
* `.file(field, value, { filename, contentType })`. `value` is a Buffer, a
|
|
148
148
|
* Blob, a Readable stream, OR a string absolute PATH to a file on disk (read at
|
|
149
|
-
* call time,
|
|
149
|
+
* call time, helix parity). The filename defaults to the path basename / field
|
|
150
150
|
* name; streams/blobs are drained to Buffers at send time.
|
|
151
151
|
*/
|
|
152
152
|
file(field, value, options = {}) {
|
|
@@ -171,7 +171,7 @@ export class RequestBuilder {
|
|
|
171
171
|
return this;
|
|
172
172
|
}
|
|
173
173
|
/**
|
|
174
|
-
* Append query-string params — mirrors
|
|
174
|
+
* Append query-string params — mirrors helix's `.qs()`. Values are
|
|
175
175
|
* URL-encoded; arrays repeat the key (`?tag=a&tag=b`). Merges with any query
|
|
176
176
|
* string already on the path and with earlier `.qs()` calls.
|
|
177
177
|
*/
|
|
@@ -188,19 +188,19 @@ export class RequestBuilder {
|
|
|
188
188
|
return this;
|
|
189
189
|
}
|
|
190
190
|
/**
|
|
191
|
-
* Append query params WITHOUT any validation/normalisation —
|
|
191
|
+
* Append query params WITHOUT any validation/normalisation — helix
|
|
192
192
|
* `.unsafeQs({ … })`. Values are still URL-encoded so the wire stays valid, but
|
|
193
193
|
* (unlike `.qs()`) no key filtering is applied; arrays repeat the key.
|
|
194
194
|
*/
|
|
195
195
|
unsafeQs(params) {
|
|
196
196
|
return this.qs(params);
|
|
197
197
|
}
|
|
198
|
-
/** Pass a bearer token as the `Authorization` header —
|
|
198
|
+
/** Pass a bearer token as the `Authorization` header — helix `.bearerToken()`. */
|
|
199
199
|
bearerToken(token) {
|
|
200
200
|
this.#headers.authorization = `Bearer ${token}`;
|
|
201
201
|
return this;
|
|
202
202
|
}
|
|
203
|
-
/** Pass HTTP Basic credentials as the `Authorization` header —
|
|
203
|
+
/** Pass HTTP Basic credentials as the `Authorization` header — helix `.basicAuth()`. */
|
|
204
204
|
basicAuth(user, password) {
|
|
205
205
|
const encoded = Buffer.from(`${user}:${password}`, 'utf8').toString('base64');
|
|
206
206
|
this.#headers.authorization = `Basic ${encoded}`;
|
|
@@ -208,7 +208,7 @@ export class RequestBuilder {
|
|
|
208
208
|
}
|
|
209
209
|
/**
|
|
210
210
|
* Set the request `Content-Type` from a shorthand (`'json'`, `'form'`, …) or a
|
|
211
|
-
* full MIME type — mirrors
|
|
211
|
+
* full MIME type — mirrors helix's `.type()`.
|
|
212
212
|
*/
|
|
213
213
|
type(mime) {
|
|
214
214
|
this.#headers['content-type'] = resolveMime(mime);
|
|
@@ -216,49 +216,49 @@ export class RequestBuilder {
|
|
|
216
216
|
}
|
|
217
217
|
/**
|
|
218
218
|
* Set the `Accept` header from a shorthand (`'json'`, `'html'`, …) or a full
|
|
219
|
-
* MIME type — mirrors
|
|
219
|
+
* MIME type — mirrors helix's `.accept()`.
|
|
220
220
|
*/
|
|
221
221
|
accept(mime) {
|
|
222
222
|
this.#headers.accept = resolveMime(mime);
|
|
223
223
|
return this;
|
|
224
224
|
}
|
|
225
|
-
/** Per-request timeout in ms —
|
|
225
|
+
/** Per-request timeout in ms — helix `.timeout()`. Honoured by the sender. */
|
|
226
226
|
timeout(ms) {
|
|
227
227
|
this.#timeoutMs = ms;
|
|
228
228
|
return this;
|
|
229
229
|
}
|
|
230
230
|
/**
|
|
231
|
-
* Follow up to `count` redirects before resolving —
|
|
232
|
-
* Defaults to 5 (
|
|
231
|
+
* Follow up to `count` redirects before resolving — helix `.redirects()`.
|
|
232
|
+
* Defaults to 5 (helix default); pass `0` to disable following.
|
|
233
233
|
*/
|
|
234
234
|
redirects(count) {
|
|
235
235
|
this.#maxRedirects = Math.max(0, count);
|
|
236
236
|
return this;
|
|
237
237
|
}
|
|
238
|
-
// TLS knobs —
|
|
238
|
+
// TLS knobs — helix parity. The test server is plain HTTP over loopback, so
|
|
239
239
|
// these are inert (there is no TLS handshake to configure); they exist so
|
|
240
|
-
//
|
|
241
|
-
/** No-op: the loopback test server has no TLS —
|
|
240
|
+
// helix-shaped code type-checks and runs unchanged. NAMED as a ream deviation.
|
|
241
|
+
/** No-op: the loopback test server has no TLS — helix `.trustLocalhost()`. */
|
|
242
242
|
trustLocalhost(_trust = true) {
|
|
243
243
|
return this;
|
|
244
244
|
}
|
|
245
|
-
/** No-op: no TLS on the loopback test server —
|
|
245
|
+
/** No-op: no TLS on the loopback test server — helix `.ca()`. */
|
|
246
246
|
ca(_cert) {
|
|
247
247
|
return this;
|
|
248
248
|
}
|
|
249
|
-
/** No-op: no TLS on the loopback test server —
|
|
249
|
+
/** No-op: no TLS on the loopback test server — helix `.cert()`. */
|
|
250
250
|
cert(_chain) {
|
|
251
251
|
return this;
|
|
252
252
|
}
|
|
253
|
-
/** No-op: no TLS on the loopback test server —
|
|
253
|
+
/** No-op: no TLS on the loopback test server — helix `.privateKey()`. */
|
|
254
254
|
privateKey(_key) {
|
|
255
255
|
return this;
|
|
256
256
|
}
|
|
257
|
-
/** No-op: no TLS on the loopback test server —
|
|
257
|
+
/** No-op: no TLS on the loopback test server — helix `.pfx()`. */
|
|
258
258
|
pfx(_encoded) {
|
|
259
259
|
return this;
|
|
260
260
|
}
|
|
261
|
-
/** No-op: no TLS on the loopback test server —
|
|
261
|
+
/** No-op: no TLS on the loopback test server — helix `.disableTLSCerts()`. */
|
|
262
262
|
disableTLSCerts() {
|
|
263
263
|
return this;
|
|
264
264
|
}
|
|
@@ -277,7 +277,7 @@ export class RequestBuilder {
|
|
|
277
277
|
this.#headers[CSRF_HEADER_NAME] = value;
|
|
278
278
|
return this;
|
|
279
279
|
}
|
|
280
|
-
/**
|
|
280
|
+
/** helix's spelling of {@link withCsrf}. */
|
|
281
281
|
withCsrfToken(token) {
|
|
282
282
|
return this.withCsrf(token);
|
|
283
283
|
}
|
|
@@ -318,10 +318,10 @@ export class RequestBuilder {
|
|
|
318
318
|
}
|
|
319
319
|
/**
|
|
320
320
|
* Thenable — `await client.get('/x')` sends the request and resolves to the
|
|
321
|
-
* {@link ApiResponse} (
|
|
321
|
+
* {@link ApiResponse} (helix parity). Assertion methods return `this`;
|
|
322
322
|
* awaiting one resolves via this `then` to the response after running the checks.
|
|
323
323
|
*/
|
|
324
|
-
// biome-ignore lint/suspicious/noThenProperty: the thenable IS the public API — `await client.get('/x')` is the documented
|
|
324
|
+
// biome-ignore lint/suspicious/noThenProperty: the thenable IS the public API — `await client.get('/x')` is the documented helix ergonomic; removing `.then` breaks every await-the-builder call site.
|
|
325
325
|
then(onFulfilled, onRejected) {
|
|
326
326
|
return this.#settle().then(onFulfilled, onRejected);
|
|
327
327
|
}
|
|
@@ -349,14 +349,14 @@ export class RequestBuilder {
|
|
|
349
349
|
}
|
|
350
350
|
expectJson(expected) {
|
|
351
351
|
// ream alias: partial JSON match with its own message (kept for back-compat;
|
|
352
|
-
// `assertBodyContains` is the
|
|
352
|
+
// `assertBodyContains` is the helix-named equivalent).
|
|
353
353
|
return this.#assert((res) => {
|
|
354
354
|
if (!partialMatch(res.json(), expected)) {
|
|
355
355
|
throw new ExpectationError(`JSON partial match failed.\nExpected (partial): ${JSON.stringify(expected)}\nActual: ${capBody(JSON.stringify(res.json()))}`);
|
|
356
356
|
}
|
|
357
357
|
});
|
|
358
358
|
}
|
|
359
|
-
// ──
|
|
359
|
+
// ── helix assertions (lazy — delegate to the response) ─────────────────────
|
|
360
360
|
assertStatus(code) {
|
|
361
361
|
return this.#assert((res) => res.assertStatus(code));
|
|
362
362
|
}
|
|
@@ -387,8 +387,8 @@ export class RequestBuilder {
|
|
|
387
387
|
assertRedirectsTo(path) {
|
|
388
388
|
return this.#assert((res) => res.assertRedirectsTo(path));
|
|
389
389
|
}
|
|
390
|
-
// ── Request debugging (
|
|
391
|
-
/** Print the pending request (method/path/headers/body) —
|
|
390
|
+
// ── Request debugging (helix `request.dump*` — dumps the REQUEST) ──────────
|
|
391
|
+
/** Print the pending request (method/path/headers/body) — helix `request.dump()`. */
|
|
392
392
|
dump() {
|
|
393
393
|
process.stderr.write(`[helix:request.dump] ${this.#method} ${this.#path}\n` +
|
|
394
394
|
`headers: ${JSON.stringify(this.#headers, null, 2)}\n` +
|
|
@@ -396,17 +396,17 @@ export class RequestBuilder {
|
|
|
396
396
|
`body: ${capBody(this.#body.toString('utf8'), 2048)}\n`);
|
|
397
397
|
return this;
|
|
398
398
|
}
|
|
399
|
-
/** Print only the pending request body —
|
|
399
|
+
/** Print only the pending request body — helix `request.dumpBody()`. */
|
|
400
400
|
dumpBody() {
|
|
401
401
|
process.stderr.write(`[helix:request.dumpBody] ${capBody(this.#body.toString('utf8'), 2048)}\n`);
|
|
402
402
|
return this;
|
|
403
403
|
}
|
|
404
|
-
/** Print only the pending request headers —
|
|
404
|
+
/** Print only the pending request headers — helix `request.dumpHeaders()`. */
|
|
405
405
|
dumpHeaders() {
|
|
406
406
|
process.stderr.write(`[helix:request.dumpHeaders] ${JSON.stringify(this.#headers, null, 2)}\n`);
|
|
407
407
|
return this;
|
|
408
408
|
}
|
|
409
|
-
/** Print only the pending request cookies —
|
|
409
|
+
/** Print only the pending request cookies — helix `request.dumpCookies()`. */
|
|
410
410
|
dumpCookies() {
|
|
411
411
|
process.stderr.write(`[helix:request.dumpCookies] ${JSON.stringify(this.#cookies, null, 2)}\n`);
|
|
412
412
|
return this;
|
|
@@ -455,7 +455,7 @@ export class RequestBuilder {
|
|
|
455
455
|
// json()/form()/body(); encode them with a fresh boundary at send time.
|
|
456
456
|
if (this.#multipart.length > 0) {
|
|
457
457
|
const boundary = `----ReamRequestBuilder${crypto.randomUUID().replace(/-/g, '')}`;
|
|
458
|
-
// Drain any stream/blob part to a Buffer before encoding (
|
|
458
|
+
// Drain any stream/blob part to a Buffer before encoding (helix parity).
|
|
459
459
|
const resolved = await Promise.all(this.#multipart.map(async (p) => p.kind === 'field'
|
|
460
460
|
? { kind: 'field', name: p.name, value: await toBuffer(p.value) }
|
|
461
461
|
: {
|
|
@@ -486,7 +486,7 @@ export class RequestBuilder {
|
|
|
486
486
|
body,
|
|
487
487
|
timeoutMs: this.#timeoutMs,
|
|
488
488
|
});
|
|
489
|
-
// Follow redirects up to the configured budget —
|
|
489
|
+
// Follow redirects up to the configured budget — helix `.redirects()` (5 by default).
|
|
490
490
|
const chain = [];
|
|
491
491
|
let followed = 0;
|
|
492
492
|
while (followed < this.#maxRedirects &&
|
|
@@ -519,7 +519,7 @@ export class RequestBuilder {
|
|
|
519
519
|
/**
|
|
520
520
|
* Serialize `data` with a registered serializer and set it as the request body
|
|
521
521
|
* — the send-side twin of {@link ApiResponse.addParser}. Register serializers
|
|
522
|
-
* via {@link RequestBuilder.addSerializer} (
|
|
522
|
+
* via {@link RequestBuilder.addSerializer} (helix `ApiRequest.addSerializer`).
|
|
523
523
|
*/
|
|
524
524
|
serialize(name, data) {
|
|
525
525
|
const serializer = requestSerializers.get(name);
|
|
@@ -532,9 +532,9 @@ export class RequestBuilder {
|
|
|
532
532
|
return this;
|
|
533
533
|
}
|
|
534
534
|
/**
|
|
535
|
-
* Register a shared property (
|
|
535
|
+
* Register a shared property (helix `ApiRequest.macro`) or lazy getter
|
|
536
536
|
* (`ApiRequest.getter`). The callback is invoked with `this` bound to the
|
|
537
|
-
* builder AND the builder as its first arg, so both
|
|
537
|
+
* builder AND the builder as its first arg, so both helix's
|
|
538
538
|
* `function () { return this.header('x') }` and `(req) => …` work.
|
|
539
539
|
*/
|
|
540
540
|
static macro(name, value) {
|
|
@@ -543,11 +543,11 @@ export class RequestBuilder {
|
|
|
543
543
|
static getter(name, fn) {
|
|
544
544
|
requestGetters.set(name, fn);
|
|
545
545
|
}
|
|
546
|
-
/** Register a request body serializer —
|
|
546
|
+
/** Register a request body serializer — helix `ApiRequest.addSerializer`. */
|
|
547
547
|
static addSerializer(name, fn) {
|
|
548
548
|
requestSerializers.set(name, fn);
|
|
549
549
|
}
|
|
550
|
-
/** Register a response body parser —
|
|
550
|
+
/** Register a response body parser — helix `ApiRequest.addParser` (delegates to ApiResponse). */
|
|
551
551
|
static addParser(contentType, fn) {
|
|
552
552
|
ApiResponse.addParser(contentType, fn);
|
|
553
553
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RequestBuilder.js","sourceRoot":"","sources":["../../src/testing/RequestBuilder.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"RequestBuilder.js","sourceRoot":"","sources":["../../src/testing/RequestBuilder.ts"],"names":[],"mappings":"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"}
|
|
@@ -24,7 +24,7 @@ export { ApiResponse, type TestResponse } from './RequestBuilder.js';
|
|
|
24
24
|
* named routes without the full Router.
|
|
25
25
|
*
|
|
26
26
|
* A value may be a bare path string OR `{ path, method }` — when the method is
|
|
27
|
-
* present, `visit(name)` uses it (
|
|
27
|
+
* present, `visit(name)` uses it (helix route-registry parity, e.g.
|
|
28
28
|
* `visit('users.store').json(...).assertCreated()` issues a POST).
|
|
29
29
|
*/
|
|
30
30
|
export type RouteEntry = string | {
|
|
@@ -43,15 +43,30 @@ export declare class TestClient {
|
|
|
43
43
|
/** Writes session values for `loginAs()` with a session-based guard. */
|
|
44
44
|
sessionSeeder?: SessionSeeder;
|
|
45
45
|
});
|
|
46
|
-
/**
|
|
46
|
+
/**
|
|
47
|
+
* Boot the application on a random port. Idempotent: a second call awaits the
|
|
48
|
+
* first rather than starting a second server.
|
|
49
|
+
*
|
|
50
|
+
* Optional — a request boots on its own. Call it when you need `port` before
|
|
51
|
+
* issuing one (an SSE or WebSocket connection opened with `fetch`).
|
|
52
|
+
*/
|
|
47
53
|
boot(): Promise<void>;
|
|
48
|
-
/**
|
|
54
|
+
/** Whether a server is currently running for this client. */
|
|
55
|
+
get booted(): boolean;
|
|
56
|
+
/**
|
|
57
|
+
* Close the server. A no-op when nothing was ever started, so a teardown can
|
|
58
|
+
* call it unconditionally against a client whose file issued no request.
|
|
59
|
+
*/
|
|
49
60
|
close(): Promise<void>;
|
|
50
61
|
/**
|
|
51
62
|
* Ephemeral port the booted server bound to. Useful for long-lived
|
|
52
63
|
* connections (SSE / WebSocket) that the fluent buffered request
|
|
53
64
|
* surface can't model — open them with `fetch` against
|
|
54
|
-
* `http://127.0.0.1:${client.port}/...`.
|
|
65
|
+
* `http://127.0.0.1:${client.port}/...`.
|
|
66
|
+
*
|
|
67
|
+
* Returns 0 while no server is running. Requests boot on their own, so a
|
|
68
|
+
* client that has only been constructed has not bound a port yet — `await
|
|
69
|
+
* client.boot()` first when you need this before issuing one.
|
|
55
70
|
*/
|
|
56
71
|
get port(): number;
|
|
57
72
|
/** Set a default header for all requests. */
|
|
@@ -67,11 +82,11 @@ export declare class TestClient {
|
|
|
67
82
|
/** DELETE request — rich, awaitable builder. */
|
|
68
83
|
delete(path: string): RequestBuilder;
|
|
69
84
|
/**
|
|
70
|
-
* HEAD request —
|
|
85
|
+
* HEAD request — helix's `.head()`. Returns the rich builder so you
|
|
71
86
|
* can assert status/headers (a HEAD response carries headers, no body).
|
|
72
87
|
*/
|
|
73
88
|
head(path: string): RequestBuilder;
|
|
74
|
-
/** OPTIONS request —
|
|
89
|
+
/** OPTIONS request — helix's `.options()`. */
|
|
75
90
|
options(path: string): RequestBuilder;
|
|
76
91
|
/**
|
|
77
92
|
* Build a request with the rich fluent surface: chained assertions
|
|
@@ -81,14 +96,14 @@ export declare class TestClient {
|
|
|
81
96
|
*/
|
|
82
97
|
fluent(method: HttpMethod, path: string): RequestBuilder;
|
|
83
98
|
/**
|
|
84
|
-
* GET a named route —
|
|
99
|
+
* GET a named route — helix's `.visit()`. Resolves `name` against
|
|
85
100
|
* the `routes` manifest (`router.namedManifest()`), fills `:param`
|
|
86
101
|
* placeholders, and returns the rich chainable builder. Throws a clear error
|
|
87
102
|
* when no manifest was configured or the name is unknown.
|
|
88
103
|
*/
|
|
89
104
|
visit(name: string, params?: Record<string, string>): RequestBuilder;
|
|
90
105
|
/**
|
|
91
|
-
* Generic request —
|
|
106
|
+
* Generic request — helix's `client.request(url, method)` (note the
|
|
92
107
|
* arg order: URL first, method second, defaulting to GET). Returns the same
|
|
93
108
|
* rich, awaitable builder as the verb shortcuts.
|
|
94
109
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TestClient.d.ts","sourceRoot":"","sources":["../../src/testing/TestClient.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAGH,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,UAAU,EAEf,cAAc,EACd,KAAK,aAAa,EAClB,KAAK,YAAY,EAClB,MAAM,qBAAqB,CAAA;AAI5B,OAAO,EAAE,WAAW,EAAE,KAAK,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAEpE;;;;;;;;GAQG;AACH,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,UAAU,CAAA;CAAE,CAAA;AACvE,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAA;AAEtD,qBAAa,UAAU;;gBASnB,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;KAAE,CAAC,EACtF,OAAO,GAAE;QACP,IAAI,CAAC,EAAE,YAAY,CAAA;QACnB,MAAM,CAAC,EAAE,aAAa,CAAA;QACtB,wEAAwE;QACxE,aAAa,CAAC,EAAE,aAAa,CAAA;KACzB;
|
|
1
|
+
{"version":3,"file":"TestClient.d.ts","sourceRoot":"","sources":["../../src/testing/TestClient.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAGH,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,UAAU,EAEf,cAAc,EACd,KAAK,aAAa,EAClB,KAAK,YAAY,EAClB,MAAM,qBAAqB,CAAA;AAI5B,OAAO,EAAE,WAAW,EAAE,KAAK,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAEpE;;;;;;;;GAQG;AACH,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,UAAU,CAAA;CAAE,CAAA;AACvE,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAA;AAEtD,qBAAa,UAAU;;gBASnB,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;KAAE,CAAC,EACtF,OAAO,GAAE;QACP,IAAI,CAAC,EAAE,YAAY,CAAA;QACnB,MAAM,CAAC,EAAE,aAAa,CAAA;QACtB,wEAAwE;QACxE,aAAa,CAAC,EAAE,aAAa,CAAA;KACzB;IAoBR;;;;;;OAMG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAU3B,6DAA6D;IAC7D,IAAI,MAAM,IAAI,OAAO,CAEpB;IAED;;;OAGG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAY5B;;;;;;;;;OASG;IACH,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,6CAA6C;IAC7C,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAU7C,6CAA6C;IAC7C,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc;IAIjC,8CAA8C;IAC9C,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc;IAIlC,6CAA6C;IAC7C,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc;IAIjC,+CAA+C;IAC/C,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc;IAInC,gDAAgD;IAChD,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc;IAIpC;;;OAGG;IACH,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc;IAIlC,8CAA8C;IAC9C,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc;IAIrC;;;;;OAKG;IACH,MAAM,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,GAAG,cAAc;IAiBxD;;;;;OAKG;IACH,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,cAAc;IAapE;;;;OAIG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,GAAE,UAAkB,GAAG,cAAc;CAGlE;AAED,iDAAiD;AACjD,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;CAAE,CAAC,EACtF,OAAO,CAAC,EAAE;IAAE,IAAI,CAAC,EAAE,YAAY,CAAA;CAAE,GAChC,OAAO,CAAC,UAAU,CAAC,CAIrB;AAED,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,KAAK,UAAU,EACf,KAAK,UAAU,EACf,YAAY,EACZ,KAAK,WAAW,EAChB,cAAc,GACf,MAAM,qBAAqB,CAAA;AAE5B;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,aAAa,EACvB,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC9B,MAAM,CAmBR;AAgED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,YAAY,CAsDpE"}
|
|
@@ -34,23 +34,59 @@ export class TestClient {
|
|
|
34
34
|
this.#sessionSeeder = options.sessionSeeder ?? null;
|
|
35
35
|
}
|
|
36
36
|
#server = null;
|
|
37
|
-
/**
|
|
37
|
+
/**
|
|
38
|
+
* In flight or settled, so concurrent callers share one boot.
|
|
39
|
+
*
|
|
40
|
+
* Also what makes `boot()` optional: the first request awaits this, starting
|
|
41
|
+
* it if nobody has. A test file that never issues a request never starts a
|
|
42
|
+
* server — which is the difference between a unit file paying for one and
|
|
43
|
+
* not, and at ~400ms a file that is most of a campaign's time.
|
|
44
|
+
*/
|
|
45
|
+
#booting = null;
|
|
46
|
+
/**
|
|
47
|
+
* Boot the application on a random port. Idempotent: a second call awaits the
|
|
48
|
+
* first rather than starting a second server.
|
|
49
|
+
*
|
|
50
|
+
* Optional — a request boots on its own. Call it when you need `port` before
|
|
51
|
+
* issuing one (an SSE or WebSocket connection opened with `fetch`).
|
|
52
|
+
*/
|
|
38
53
|
async boot() {
|
|
54
|
+
this.#booting ??= this.#startServer();
|
|
55
|
+
return this.#booting;
|
|
56
|
+
}
|
|
57
|
+
async #startServer() {
|
|
39
58
|
this.#server = await this.#bootFn(0);
|
|
40
59
|
this.#port = this.#server.port;
|
|
41
60
|
}
|
|
42
|
-
/**
|
|
61
|
+
/** Whether a server is currently running for this client. */
|
|
62
|
+
get booted() {
|
|
63
|
+
return this.#server !== null;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Close the server. A no-op when nothing was ever started, so a teardown can
|
|
67
|
+
* call it unconditionally against a client whose file issued no request.
|
|
68
|
+
*/
|
|
43
69
|
async close() {
|
|
70
|
+
// Awaited first: closing while a boot is in flight would otherwise leave
|
|
71
|
+
// the server that boot is about to assign running with nobody holding it.
|
|
72
|
+
if (this.#booting)
|
|
73
|
+
await this.#booting.catch(() => { });
|
|
74
|
+
this.#booting = null;
|
|
44
75
|
if (this.#server) {
|
|
45
76
|
await this.#server.close();
|
|
46
77
|
this.#server = null;
|
|
78
|
+
this.#port = 0;
|
|
47
79
|
}
|
|
48
80
|
}
|
|
49
81
|
/**
|
|
50
82
|
* Ephemeral port the booted server bound to. Useful for long-lived
|
|
51
83
|
* connections (SSE / WebSocket) that the fluent buffered request
|
|
52
84
|
* surface can't model — open them with `fetch` against
|
|
53
|
-
* `http://127.0.0.1:${client.port}/...`.
|
|
85
|
+
* `http://127.0.0.1:${client.port}/...`.
|
|
86
|
+
*
|
|
87
|
+
* Returns 0 while no server is running. Requests boot on their own, so a
|
|
88
|
+
* client that has only been constructed has not bound a port yet — `await
|
|
89
|
+
* client.boot()` first when you need this before issuing one.
|
|
54
90
|
*/
|
|
55
91
|
get port() {
|
|
56
92
|
return this.#port;
|
|
@@ -60,7 +96,7 @@ export class TestClient {
|
|
|
60
96
|
this.#headers[name.toLowerCase()] = value;
|
|
61
97
|
return this;
|
|
62
98
|
}
|
|
63
|
-
// Verb shortcuts return the RICH builder — the full
|
|
99
|
+
// Verb shortcuts return the RICH builder — the full helix surface
|
|
64
100
|
// (assertOk/assertStatus/assertBody/… + auth/csrf) AND awaitable (`await
|
|
65
101
|
// client.get('/x')` sends and resolves to the response). One unified builder,
|
|
66
102
|
// no split between `get()` and `fluent()`.
|
|
@@ -85,13 +121,13 @@ export class TestClient {
|
|
|
85
121
|
return this.fluent('DELETE', path);
|
|
86
122
|
}
|
|
87
123
|
/**
|
|
88
|
-
* HEAD request —
|
|
124
|
+
* HEAD request — helix's `.head()`. Returns the rich builder so you
|
|
89
125
|
* can assert status/headers (a HEAD response carries headers, no body).
|
|
90
126
|
*/
|
|
91
127
|
head(path) {
|
|
92
128
|
return this.fluent('HEAD', path);
|
|
93
129
|
}
|
|
94
|
-
/** OPTIONS request —
|
|
130
|
+
/** OPTIONS request — helix's `.options()`. */
|
|
95
131
|
options(path) {
|
|
96
132
|
return this.fluent('OPTIONS', path);
|
|
97
133
|
}
|
|
@@ -102,11 +138,16 @@ export class TestClient {
|
|
|
102
138
|
* `form()`. The lower-level `request()` (below) stays for raw control.
|
|
103
139
|
*/
|
|
104
140
|
fluent(method, path) {
|
|
105
|
-
const sender = (m, p, init) =>
|
|
141
|
+
const sender = async (m, p, init) => {
|
|
142
|
+
// Boots on the first request and no earlier. `#port` is read here rather
|
|
143
|
+
// than captured, so it is the port this boot bound to.
|
|
144
|
+
await this.boot();
|
|
145
|
+
return sendRequest(this.#port, m, p, { ...this.#headers, ...init.headers }, init.body.toString('utf8'), init.timeoutMs);
|
|
146
|
+
};
|
|
106
147
|
return new RequestBuilder(sender, method, path, this.#auth, this.#sessionSeeder);
|
|
107
148
|
}
|
|
108
149
|
/**
|
|
109
|
-
* GET a named route —
|
|
150
|
+
* GET a named route — helix's `.visit()`. Resolves `name` against
|
|
110
151
|
* the `routes` manifest (`router.namedManifest()`), fills `:param`
|
|
111
152
|
* placeholders, and returns the rich chainable builder. Throws a clear error
|
|
112
153
|
* when no manifest was configured or the name is unknown.
|
|
@@ -116,13 +157,13 @@ export class TestClient {
|
|
|
116
157
|
throw new Error('TestClient: visit() needs a named-route manifest. Pass `routes: router.namedManifest()` in the client options.');
|
|
117
158
|
}
|
|
118
159
|
const entry = this.#routes[name];
|
|
119
|
-
// Method comes from the registry when the entry carries one (
|
|
160
|
+
// Method comes from the registry when the entry carries one (helix parity),
|
|
120
161
|
// otherwise GET.
|
|
121
162
|
const method = typeof entry === 'object' && entry.method ? entry.method : 'GET';
|
|
122
163
|
return this.fluent(method, resolveNamedRoute(this.#routes, name, params));
|
|
123
164
|
}
|
|
124
165
|
/**
|
|
125
|
-
* Generic request —
|
|
166
|
+
* Generic request — helix's `client.request(url, method)` (note the
|
|
126
167
|
* arg order: URL first, method second, defaulting to GET). Returns the same
|
|
127
168
|
* rich, awaitable builder as the verb shortcuts.
|
|
128
169
|
*/
|
|
@@ -204,7 +245,7 @@ async function sendRequest(port, method, path, headers, body, timeoutMs) {
|
|
|
204
245
|
// and surfaced as flaky `bob accepts` / `non-member 403` failures
|
|
205
246
|
// in kitchen-sink's workspace.test.ts. 30s matches the helix
|
|
206
247
|
// `--timeout=60000` per-test budget without masking real hangs. A
|
|
207
|
-
// per-request `.timeout(ms)` (
|
|
248
|
+
// per-request `.timeout(ms)` (helix) overrides the default.
|
|
208
249
|
socket.setTimeout(timeoutMs && timeoutMs > 0 ? timeoutMs : 30_000, () => {
|
|
209
250
|
socket.destroy();
|
|
210
251
|
reject(new Error('TestClient request timed out'));
|