@fluojs/testing 1.0.0-beta.2 → 1.0.0-beta.3

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.
@@ -7,6 +7,11 @@ function _checkInRHS(e) { if (Object(e) !== e) throw TypeError("right-hand side
7
7
  import { Controller, Get, Post, SseResponse } from '@fluojs/http';
8
8
  // @ts-ignore Worktree-local LSP does not resolve workspace package aliases.
9
9
  import { defineModule } from '@fluojs/runtime';
10
+
11
+ /**
12
+ * Describes the web runtime http adapter portability harness options contract.
13
+ */
14
+
10
15
  function decodeUtf8(input) {
11
16
  return new TextDecoder().decode(input ?? new Uint8Array());
12
17
  }
@@ -15,28 +20,72 @@ async function closeSilently(app) {
15
20
  await app.close();
16
21
  } catch {}
17
22
  }
23
+
24
+ /**
25
+ * Represents the web runtime http adapter portability harness.
26
+ */
18
27
  export class WebRuntimeHttpAdapterPortabilityHarness {
19
28
  constructor(options) {
20
29
  this.options = options;
21
30
  }
22
- async assertPreservesMalformedCookieValues() {
31
+ async assertPreservesQueryArraysAndDecoding() {
23
32
  let _initProto, _initClass;
33
+ let _QueryController;
34
+ class QueryController {
35
+ static {
36
+ ({
37
+ e: [_initProto],
38
+ c: [_QueryController, _initClass]
39
+ } = _applyDecs(this, [Controller('/query')], [[Get('/'), 2, "readQuery"]]));
40
+ }
41
+ constructor() {
42
+ _initProto(this);
43
+ }
44
+ readQuery(_input, context) {
45
+ return context.request.query;
46
+ }
47
+ static {
48
+ _initClass();
49
+ }
50
+ }
51
+ class AppModule {}
52
+ defineModule(AppModule, {
53
+ controllers: [_QueryController]
54
+ });
55
+ const app = await this.options.bootstrap(AppModule, {
56
+ cors: false
57
+ });
58
+ try {
59
+ const response = await app.dispatch(new Request('https://runtime.test/query?tag=one&tag=two&encoded=hello+world&flag&bad=%E0%A4%A'));
60
+ if (response.status !== 200) {
61
+ throw new Error(`${this.options.name} adapter changed query response status semantics.`);
62
+ }
63
+ const body = await response.json();
64
+ if (typeof body !== 'object' || body === null || body.bad !== '�%A' || body.encoded !== 'hello world' || !Array.isArray(body.tag) || JSON.stringify(body.tag) !== JSON.stringify(['one', 'two'])) {
65
+ throw new Error(`${this.options.name} adapter changed query decoding semantics.`);
66
+ }
67
+ } finally {
68
+ await closeSilently(app);
69
+ }
70
+ }
71
+ async assertPreservesMalformedCookieValues() {
72
+ let _initProto2, _initClass2;
24
73
  let _CookieController;
25
74
  class CookieController {
26
75
  static {
27
76
  ({
28
- e: [_initProto],
29
- c: [_CookieController, _initClass]
77
+ e: [_initProto2],
78
+ c: [_CookieController, _initClass2]
30
79
  } = _applyDecs(this, [Controller('/cookies')], [[Get('/'), 2, "readCookies"]]));
31
80
  }
32
81
  constructor() {
33
- _initProto(this);
82
+ _initProto2(this);
34
83
  }
35
84
  readCookies(_input, context) {
36
85
  return context.request.cookies;
37
86
  }
38
87
  static {
39
- _initClass();
88
+ _initClass2();
40
89
  }
41
90
  }
42
91
  class AppModule {}
@@ -64,17 +113,17 @@ export class WebRuntimeHttpAdapterPortabilityHarness {
64
113
  }
65
114
  }
66
115
  async assertPreservesRawBodyForJsonAndText() {
67
- let _initProto2, _initClass2;
116
+ let _initProto3, _initClass3;
68
117
  let _WebhookController;
69
118
  class WebhookController {
70
119
  static {
71
120
  ({
72
- e: [_initProto2],
73
- c: [_WebhookController, _initClass2]
121
+ e: [_initProto3],
122
+ c: [_WebhookController, _initClass3]
74
123
  } = _applyDecs(this, [Controller('/webhooks')], [[Post('/json'), 2, "handleJson"], [Post('/text'), 2, "handleText"]]));
75
124
  }
76
125
  constructor() {
77
- _initProto2(this);
126
+ _initProto3(this);
78
127
  }
79
128
  handleJson(_input, context) {
80
129
  return {
@@ -89,7 +138,7 @@ export class WebRuntimeHttpAdapterPortabilityHarness {
89
138
  };
90
139
  }
91
140
  static {
92
- _initClass2();
141
+ _initClass3();
93
142
  }
94
143
  }
95
144
  class AppModule {}
@@ -139,17 +188,17 @@ export class WebRuntimeHttpAdapterPortabilityHarness {
139
188
  }
140
189
  }
141
190
  async assertExcludesRawBodyForMultipart() {
142
- let _initProto3, _initClass3;
191
+ let _initProto4, _initClass4;
143
192
  let _UploadController;
144
193
  class UploadController {
145
194
  static {
146
195
  ({
147
- e: [_initProto3],
148
- c: [_UploadController, _initClass3]
196
+ e: [_initProto4],
197
+ c: [_UploadController, _initClass4]
149
198
  } = _applyDecs(this, [Controller('/uploads')], [[Post('/'), 2, "upload"]]));
150
199
  }
151
200
  constructor() {
152
- _initProto3(this);
201
+ _initProto4(this);
153
202
  }
154
203
  upload(_input, context) {
155
204
  return {
@@ -159,7 +208,7 @@ export class WebRuntimeHttpAdapterPortabilityHarness {
159
208
  };
160
209
  }
161
210
  static {
162
- _initClass3();
211
+ _initClass4();
163
212
  }
164
213
  }
165
214
  class AppModule {}
@@ -198,17 +247,17 @@ export class WebRuntimeHttpAdapterPortabilityHarness {
198
247
  }
199
248
  }
200
249
  async assertSupportsSseStreaming() {
201
- let _initProto4, _initClass4;
250
+ let _initProto5, _initClass5;
202
251
  let _EventsController;
203
252
  class EventsController {
204
253
  static {
205
254
  ({
206
- e: [_initProto4],
207
- c: [_EventsController, _initClass4]
255
+ e: [_initProto5],
256
+ c: [_EventsController, _initClass5]
208
257
  } = _applyDecs(this, [Controller('/events')], [[Get('/'), 2, "stream"]]));
209
258
  }
210
259
  constructor() {
211
- _initProto4(this);
260
+ _initProto5(this);
212
261
  }
213
262
  stream(_input, context) {
214
263
  const stream = new SseResponse(context);
@@ -223,7 +272,7 @@ export class WebRuntimeHttpAdapterPortabilityHarness {
223
272
  return stream;
224
273
  }
225
274
  static {
226
- _initClass4();
275
+ _initClass5();
227
276
  }
228
277
  }
229
278
  class AppModule {}
@@ -255,6 +304,13 @@ export class WebRuntimeHttpAdapterPortabilityHarness {
255
304
  }
256
305
  }
257
306
  }
307
+
308
+ /**
309
+ * Create web runtime http adapter portability harness.
310
+ *
311
+ * @param options The options.
312
+ * @returns The create web runtime http adapter portability harness result.
313
+ */
258
314
  export function createWebRuntimeHttpAdapterPortabilityHarness(options) {
259
315
  return new WebRuntimeHttpAdapterPortabilityHarness(options);
260
316
  }
package/dist/types.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import type { Mock } from 'vitest';
2
2
  import type { MaybePromise, Token } from '@fluojs/core';
3
3
  import type { ClassType, Container, ForwardRefFn, OptionalToken, Provider } from '@fluojs/di';
4
- import type { BootstrapResult, BootstrapModuleOptions, ModuleType } from '@fluojs/runtime';
4
+ import type { BootstrapApplicationOptions, BootstrapResult, BootstrapModuleOptions, ModuleType } from '@fluojs/runtime';
5
5
  import type { Guard, Interceptor } from '@fluojs/http';
6
6
  import type { RequestBuilder, TestPrincipal, TestRequest, TestRequestWithOptions, TestResponse } from './http.js';
7
7
  /**
@@ -10,6 +10,12 @@ import type { RequestBuilder, TestPrincipal, TestRequest, TestRequestWithOptions
10
10
  export interface TestingModuleOptions extends BootstrapModuleOptions {
11
11
  rootModule: ModuleType;
12
12
  }
13
+ /**
14
+ * Bootstrap options accepted by `createTestApp(...)`.
15
+ */
16
+ export interface TestingApplicationOptions extends BootstrapApplicationOptions {
17
+ rootModule: ModuleType;
18
+ }
13
19
  /**
14
20
  * Optional request extras accepted by `TestApp.request(...)` overloads.
15
21
  */
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -9,7 +9,7 @@
9
9
  "override",
10
10
  "module-builder"
11
11
  ],
12
- "version": "1.0.0-beta.2",
12
+ "version": "1.0.0-beta.3",
13
13
  "private": false,
14
14
  "license": "MIT",
15
15
  "repository": {
@@ -76,11 +76,11 @@
76
76
  "dist"
77
77
  ],
78
78
  "dependencies": {
79
- "@fluojs/config": "^1.0.0-beta.2",
80
- "@fluojs/http": "^1.0.0-beta.1",
81
- "@fluojs/di": "^1.0.0-beta.2",
82
- "@fluojs/runtime": "^1.0.0-beta.2",
83
- "@fluojs/core": "^1.0.0-beta.1"
79
+ "@fluojs/core": "^1.0.0-beta.5",
80
+ "@fluojs/di": "^1.0.0-beta.7",
81
+ "@fluojs/runtime": "^1.0.0-beta.12",
82
+ "@fluojs/http": "^1.0.0-beta.10",
83
+ "@fluojs/config": "^1.0.0-beta.8"
84
84
  },
85
85
  "peerDependencies": {
86
86
  "@babel/core": ">=7.0.0",
@@ -88,9 +88,9 @@
88
88
  },
89
89
  "devDependencies": {
90
90
  "vitest": "^3.2.4",
91
- "@fluojs/platform-nodejs": "^1.0.0-beta.2",
92
- "@fluojs/platform-express": "^1.0.0-beta.2",
93
- "@fluojs/platform-fastify": "^1.0.0-beta.3"
91
+ "@fluojs/platform-express": "^1.0.0-beta.7",
92
+ "@fluojs/platform-nodejs": "^1.0.0-beta.5",
93
+ "@fluojs/platform-fastify": "^1.0.0-beta.8"
94
94
  },
95
95
  "scripts": {
96
96
  "prebuild": "node ../../tooling/scripts/clean-dist.mjs",