@deepkit/http 1.0.1-alpha.71 → 1.0.1-alpha.72

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.
Files changed (121) hide show
  1. package/dist/cjs/src/decorator.d.ts +8 -6
  2. package/dist/cjs/src/decorator.js +49 -12
  3. package/dist/cjs/src/decorator.js.map +1 -1
  4. package/dist/cjs/src/filter.d.ts +3 -3
  5. package/dist/cjs/src/filter.js +3 -3
  6. package/dist/cjs/src/filter.js.map +1 -1
  7. package/dist/cjs/src/http.d.ts +49 -11
  8. package/dist/cjs/src/http.js +129 -38
  9. package/dist/cjs/src/http.js.map +1 -1
  10. package/dist/cjs/src/kernel.d.ts +3 -3
  11. package/dist/cjs/src/kernel.js +1 -1
  12. package/dist/cjs/src/kernel.js.map +1 -1
  13. package/dist/cjs/src/model.d.ts +11 -3
  14. package/dist/cjs/src/model.js +58 -26
  15. package/dist/cjs/src/model.js.map +1 -1
  16. package/dist/cjs/src/module.js +5 -3
  17. package/dist/cjs/src/module.js.map +1 -1
  18. package/dist/cjs/src/router.d.ts +84 -11
  19. package/dist/cjs/src/router.js +280 -94
  20. package/dist/cjs/src/router.js.map +1 -1
  21. package/dist/cjs/src/static-serving.js +15 -8
  22. package/dist/cjs/src/static-serving.js.map +1 -1
  23. package/dist/cjs/tsconfig.tsbuildinfo +1 -1
  24. package/dist/esm/src/decorator.d.ts +8 -6
  25. package/dist/esm/src/decorator.js +47 -11
  26. package/dist/esm/src/decorator.js.map +1 -1
  27. package/dist/esm/src/filter.d.ts +3 -3
  28. package/dist/esm/src/filter.js +4 -4
  29. package/dist/esm/src/filter.js.map +1 -1
  30. package/dist/esm/src/http.d.ts +49 -11
  31. package/dist/esm/src/http.js +102 -24
  32. package/dist/esm/src/http.js.map +1 -1
  33. package/dist/esm/src/kernel.d.ts +3 -3
  34. package/dist/esm/src/kernel.js +2 -2
  35. package/dist/esm/src/kernel.js.map +1 -1
  36. package/dist/esm/src/model.d.ts +11 -3
  37. package/dist/esm/src/model.js +47 -15
  38. package/dist/esm/src/model.js.map +1 -1
  39. package/dist/esm/src/module.js +5 -3
  40. package/dist/esm/src/module.js.map +1 -1
  41. package/dist/esm/src/router.d.ts +84 -11
  42. package/dist/esm/src/router.js +278 -94
  43. package/dist/esm/src/router.js.map +1 -1
  44. package/dist/esm/src/static-serving.js +16 -9
  45. package/dist/esm/src/static-serving.js.map +1 -1
  46. package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
  47. package/package.json +17 -14
  48. package/src/decorator.ts +9 -6
  49. package/src/filter.ts +4 -4
  50. package/src/http.ts +88 -15
  51. package/src/kernel.ts +2 -2
  52. package/src/model.ts +35 -6
  53. package/src/module.ts +5 -3
  54. package/src/router.ts +286 -73
  55. package/src/static-serving.ts +6 -3
  56. package/coverage/clover.xml +0 -1086
  57. package/coverage/coverage-final.json +0 -12
  58. package/coverage/lcov-report/base.css +0 -224
  59. package/coverage/lcov-report/block-navigation.js +0 -79
  60. package/coverage/lcov-report/favicon.png +0 -0
  61. package/coverage/lcov-report/index.html +0 -126
  62. package/coverage/lcov-report/prettify.css +0 -1
  63. package/coverage/lcov-report/prettify.js +0 -2
  64. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  65. package/coverage/lcov-report/sorter.js +0 -170
  66. package/coverage/lcov-report/src/controllers.ts.html +0 -113
  67. package/coverage/lcov-report/src/decorator.ts.html +0 -1280
  68. package/coverage/lcov-report/src/filter.ts.html +0 -734
  69. package/coverage/lcov-report/src/http.ts.html +0 -2192
  70. package/coverage/lcov-report/src/index.html +0 -246
  71. package/coverage/lcov-report/src/kernel.ts.html +0 -260
  72. package/coverage/lcov-report/src/middleware.ts.html +0 -428
  73. package/coverage/lcov-report/src/model.ts.html +0 -937
  74. package/coverage/lcov-report/src/module.config.ts.html +0 -89
  75. package/coverage/lcov-report/src/module.ts.html +0 -245
  76. package/coverage/lcov-report/src/router.ts.html +0 -2318
  77. package/coverage/lcov-report/tests/index.html +0 -111
  78. package/coverage/lcov-report/tests/utils.ts.html +0 -176
  79. package/coverage/lcov.info +0 -2225
  80. package/dist/cjs/tests/filter.spec.d.ts +0 -1
  81. package/dist/cjs/tests/filter.spec.js +0 -251
  82. package/dist/cjs/tests/filter.spec.js.map +0 -1
  83. package/dist/cjs/tests/middleware.spec.d.ts +0 -1
  84. package/dist/cjs/tests/middleware.spec.js +0 -471
  85. package/dist/cjs/tests/middleware.spec.js.map +0 -1
  86. package/dist/cjs/tests/model.spec.d.ts +0 -1
  87. package/dist/cjs/tests/model.spec.js +0 -23
  88. package/dist/cjs/tests/model.spec.js.map +0 -1
  89. package/dist/cjs/tests/module.spec.d.ts +0 -1
  90. package/dist/cjs/tests/module.spec.js +0 -46
  91. package/dist/cjs/tests/module.spec.js.map +0 -1
  92. package/dist/cjs/tests/router.spec.d.ts +0 -1
  93. package/dist/cjs/tests/router.spec.js +0 -987
  94. package/dist/cjs/tests/router.spec.js.map +0 -1
  95. package/dist/cjs/tests/utils.d.ts +0 -8
  96. package/dist/cjs/tests/utils.js +0 -30
  97. package/dist/cjs/tests/utils.js.map +0 -1
  98. package/dist/esm/tests/filter.spec.d.ts +0 -1
  99. package/dist/esm/tests/filter.spec.js +0 -249
  100. package/dist/esm/tests/filter.spec.js.map +0 -1
  101. package/dist/esm/tests/middleware.spec.d.ts +0 -1
  102. package/dist/esm/tests/middleware.spec.js +0 -469
  103. package/dist/esm/tests/middleware.spec.js.map +0 -1
  104. package/dist/esm/tests/model.spec.d.ts +0 -1
  105. package/dist/esm/tests/model.spec.js +0 -21
  106. package/dist/esm/tests/model.spec.js.map +0 -1
  107. package/dist/esm/tests/module.spec.d.ts +0 -1
  108. package/dist/esm/tests/module.spec.js +0 -44
  109. package/dist/esm/tests/module.spec.js.map +0 -1
  110. package/dist/esm/tests/router.spec.d.ts +0 -1
  111. package/dist/esm/tests/router.spec.js +0 -985
  112. package/dist/esm/tests/router.spec.js.map +0 -1
  113. package/dist/esm/tests/utils.d.ts +0 -8
  114. package/dist/esm/tests/utils.js +0 -26
  115. package/dist/esm/tests/utils.js.map +0 -1
  116. package/tests/filter.spec.ts +0 -181
  117. package/tests/middleware.spec.ts +0 -440
  118. package/tests/model.spec.ts +0 -26
  119. package/tests/module.spec.ts +0 -32
  120. package/tests/router.spec.ts +0 -781
  121. package/tests/utils.ts +0 -32
@@ -1,440 +0,0 @@
1
- import { expect, test } from '@jest/globals';
2
- import { http } from '../src/decorator';
3
- import { createHttpKernel } from './utils';
4
- import { HttpMiddleware, httpMiddleware } from '../src/middleware';
5
- import { HttpRequest, HttpResponse } from '../src/model';
6
- import { AppModule } from '@deepkit/app';
7
- import { sleep } from '@deepkit/core';
8
-
9
- class Controller {
10
- @http.GET('user/:name')
11
- hello(name: string) {
12
- return name;
13
- }
14
- }
15
-
16
- test('middleware empty', async () => {
17
- const httpKernel = createHttpKernel([Controller], [], [], [httpMiddleware.for((req, res, next) => {
18
- next();
19
- })]);
20
-
21
- const response = await httpKernel.request(HttpRequest.GET('/user/name1'));
22
- expect(response.statusCode).toEqual(200);
23
- expect(response.bodyString).toEqual('"name1"');
24
- expect(response.getHeader('content-type')).toEqual('application/json; charset=utf-8');
25
- });
26
-
27
- test('middleware async success', async () => {
28
- const httpKernel = createHttpKernel([Controller], [], [], [httpMiddleware.for(async (req, res, next) => {
29
- await sleep(0.1);
30
- res.end('nope');
31
- })]);
32
-
33
- const response = await httpKernel.request(HttpRequest.GET('/user/name1'));
34
- expect(response.statusCode).toEqual(200);
35
- expect(response.bodyString).toEqual('nope');
36
- });
37
-
38
- test('middleware async failed', async () => {
39
- const httpKernel = createHttpKernel([Controller], [], [], [httpMiddleware.for(async (req, res, next) => {
40
- await sleep(0.1);
41
- throw new Error('nope');
42
- })]);
43
-
44
- const response = await httpKernel.request(HttpRequest.GET('/user/name1'));
45
- expect(response.statusCode).toEqual(404);
46
- expect(response.bodyString).toEqual('Not found');
47
- });
48
-
49
- test('middleware class async success', async () => {
50
- class MyMiddleware implements HttpMiddleware {
51
- async execute(req: HttpRequest, res: HttpResponse, next: (err?: any) => void): Promise<void> {
52
- await sleep(0.1);
53
- res.end('nope');
54
- }
55
- }
56
-
57
- const httpKernel = createHttpKernel([Controller], [MyMiddleware], [], [httpMiddleware.for(MyMiddleware)]);
58
-
59
- const response = await httpKernel.request(HttpRequest.GET('/user/name1'));
60
- expect(response.statusCode).toEqual(200);
61
- expect(response.bodyString).toEqual('nope');
62
- });
63
-
64
- test('middleware class async failed', async () => {
65
- class MyMiddleware implements HttpMiddleware {
66
- async execute(req: HttpRequest, res: HttpResponse, next: (err?: any) => void): Promise<void> {
67
- await sleep(0.1);
68
- throw new Error('nope');
69
- }
70
- }
71
-
72
- const httpKernel = createHttpKernel([Controller], [MyMiddleware], [], [httpMiddleware.for(MyMiddleware)]);
73
-
74
- const response = await httpKernel.request(HttpRequest.GET('/user/name1'));
75
- expect(response.statusCode).toEqual(404);
76
- expect(response.bodyString).toEqual('Not found');
77
- });
78
-
79
- test('middleware direct response', async () => {
80
- const httpKernel = createHttpKernel([Controller], [], [], [httpMiddleware.for((req, res, next) => {
81
- res.end('nope');
82
- })]);
83
-
84
- const response = await httpKernel.request(HttpRequest.GET('/user/name1'));
85
- expect(response.statusCode).toEqual(200);
86
- expect(response.bodyString).toEqual('nope');
87
- });
88
-
89
- test('middleware for controller', async () => {
90
- class MyController {
91
- @http.GET('/another/:name')
92
- hello(name: string) {
93
- return name;
94
- }
95
- }
96
-
97
- const httpKernel = createHttpKernel([Controller, MyController], [], [], [httpMiddleware.for((req, res, next) => {
98
- res.setHeader('middleware', '1');
99
- next();
100
- }).forControllers(MyController)]);
101
-
102
- {
103
- const response = await httpKernel.request(HttpRequest.GET('/user/name1'));
104
- expect(response.statusCode).toEqual(200);
105
- expect(response.getHeader('middleware')).toEqual(undefined);
106
- }
107
- {
108
- const response = await httpKernel.request(HttpRequest.GET('/another/name1'));
109
- expect(response.statusCode).toEqual(200);
110
- expect(response.getHeader('middleware')).toEqual('1');
111
- }
112
- });
113
-
114
- test('middleware excludeControllers', async () => {
115
- class MyController {
116
- @http.GET('/another/:name')
117
- hello(name: string) {
118
- return name;
119
- }
120
- }
121
-
122
- const httpKernel = createHttpKernel([Controller, MyController], [], [], [httpMiddleware.for((req, res, next) => {
123
- res.setHeader('middleware', '1');
124
- next();
125
- }).excludeControllers(Controller)]);
126
-
127
- {
128
- const response = await httpKernel.request(HttpRequest.GET('/user/name1'));
129
- expect(response.statusCode).toEqual(200);
130
- expect(response.getHeader('middleware')).toEqual(undefined);
131
- }
132
- {
133
- const response = await httpKernel.request(HttpRequest.GET('/another/name1'));
134
- expect(response.statusCode).toEqual(200);
135
- expect(response.getHeader('middleware')).toEqual('1');
136
- }
137
- });
138
-
139
- test('middleware for names', async () => {
140
- class MyController {
141
- @http.GET('/another/:name').name('another')
142
- hello(name: string) {
143
- return name;
144
- }
145
-
146
- @http.GET('/api/user/:name').name('api_user')
147
- apiUser(name: string) {
148
- return name;
149
- }
150
-
151
- @http.GET('/api/group/:name').name('api_group')
152
- apiGroup(name: string) {
153
- return name;
154
- }
155
- }
156
-
157
- const httpKernel = createHttpKernel([MyController], [], [], [httpMiddleware.for((req, res, next) => {
158
- res.setHeader('middleware', '1');
159
- next();
160
- }).forRouteNames('api_*').excludeRouteNames('api_group')]);
161
-
162
- {
163
- const response = await httpKernel.request(HttpRequest.GET('/api/user/name1'));
164
- expect(response.statusCode).toEqual(200);
165
- expect(response.getHeader('middleware')).toEqual('1');
166
- }
167
- {
168
- const response = await httpKernel.request(HttpRequest.GET('/api/group/name1'));
169
- expect(response.statusCode).toEqual(200);
170
- expect(response.getHeader('middleware')).toEqual(undefined);
171
- }
172
- {
173
- const response = await httpKernel.request(HttpRequest.GET('/another/name1'));
174
- expect(response.statusCode).toEqual(200);
175
- expect(response.getHeader('middleware')).toEqual(undefined);
176
- }
177
- });
178
-
179
- test('middleware for routes', async () => {
180
- class MyController {
181
- @http.GET('/another/:name').group('another')
182
- hello(name: string) {
183
- return name;
184
- }
185
-
186
- @http.GET('/api/user/:name').group('api')
187
- apiUser(name: string) {
188
- return name;
189
- }
190
-
191
- @http.GET('/api/group/:name').group('api')
192
- apiGroup(name: string) {
193
- return name;
194
- }
195
- }
196
-
197
- const httpKernel = createHttpKernel([MyController], [], [], [
198
- httpMiddleware.for((req, res, next) => {
199
- res.setHeader('middleware_get', '1');
200
- next();
201
- }).forRoutes({ httpMethod: 'GET' }),
202
- httpMiddleware.for((req, res, next) => {
203
- res.setHeader('middleware_api_group', '1');
204
- next();
205
- }).forRoutes({ group: 'api' }),
206
- httpMiddleware.for((req, res, next) => {
207
- res.setHeader('middleware_api_path', '1');
208
- next();
209
- }).forRoutes({ path: '/api/*' }),
210
- httpMiddleware.for((req, res, next) => {
211
- res.setHeader('middleware_api_user', '1');
212
- next();
213
- }).forRoutes({ path: '/api/user/*' }),
214
- httpMiddleware.for((req, res, next) => {
215
- res.setHeader('middleware_another', '1');
216
- next();
217
- }).forRoutes({ group: 'another' })
218
- ]);
219
-
220
- {
221
- const response = await httpKernel.request(HttpRequest.GET('/another/name1'));
222
- expect(response.statusCode).toEqual(200);
223
- expect(response.getHeader('middleware_get')).toEqual('1');
224
- expect(response.getHeader('middleware_another')).toEqual('1');
225
- expect(response.getHeader('middleware_api_group')).toEqual(undefined);
226
- expect(response.getHeader('middleware_api_path')).toEqual(undefined);
227
- }
228
-
229
- {
230
- const response = await httpKernel.request(HttpRequest.GET('/api/group/name1'));
231
- expect(response.statusCode).toEqual(200);
232
- expect(response.getHeader('middleware_api_group')).toEqual('1');
233
- expect(response.getHeader('middleware_api_path')).toEqual('1');
234
- expect(response.getHeader('middleware_get')).toEqual('1');
235
- expect(response.getHeader('middleware_another')).toEqual(undefined);
236
- }
237
-
238
- {
239
- const response = await httpKernel.request(HttpRequest.GET('/api/user/name1'));
240
- expect(response.statusCode).toEqual(200);
241
- expect(response.getHeader('middleware_api_group')).toEqual('1');
242
- expect(response.getHeader('middleware_api_path')).toEqual('1');
243
- expect(response.getHeader('middleware_api_user')).toEqual('1');
244
- expect(response.getHeader('middleware_get')).toEqual('1');
245
- expect(response.getHeader('middleware_another')).toEqual(undefined);
246
- }
247
- });
248
-
249
- test('middleware timeout', async () => {
250
- const httpKernel = createHttpKernel([Controller], [], [], [httpMiddleware.for((req, res, next) => {
251
- //do nothing
252
- }).timeout(1000)]);
253
-
254
- const response = await httpKernel.request(HttpRequest.GET('/user/name1'));
255
- expect(response.statusCode).toEqual(200);
256
- expect(response.bodyString).toEqual('"name1"');
257
- });
258
-
259
- test('middleware keep content type', async () => {
260
- const httpKernel = createHttpKernel([Controller], [], [], [httpMiddleware.for((req, res, next) => {
261
- res.setHeader('Content-Type', 'text/plain');
262
- next();
263
- })]);
264
-
265
- const response = await httpKernel.request(HttpRequest.GET('/user/name1'));
266
- expect(response.statusCode).toEqual(200);
267
- expect(response.bodyString).toEqual('"name1"');
268
- expect(response.getHeader('content-type')).toEqual('text/plain');
269
- });
270
-
271
- test('middleware order natural', async () => {
272
- const order: number[] = [];
273
- const httpKernel = createHttpKernel([Controller], [], [], [
274
- httpMiddleware.for((req, res, next) => {
275
- order.push(1);
276
- next();
277
- }),
278
- httpMiddleware.for((req, res, next) => {
279
- order.push(2);
280
- next();
281
- }),
282
- httpMiddleware.for((req, res, next) => {
283
- order.push(3);
284
- next();
285
- })
286
- ]);
287
-
288
- const response = await httpKernel.request(HttpRequest.GET('/user/name1'));
289
- expect(response.statusCode).toEqual(200);
290
-
291
- expect(order).toEqual([1, 2, 3]);
292
- });
293
-
294
- test('middleware order changed', async () => {
295
- const order: number[] = [];
296
- const httpKernel = createHttpKernel([Controller], [], [], [
297
- httpMiddleware.for((req, res, next) => {
298
- order.push(1);
299
- next();
300
- }),
301
- httpMiddleware.for((req, res, next) => {
302
- order.push(2);
303
- next();
304
- }),
305
- httpMiddleware.for((req, res, next) => {
306
- order.push(3);
307
- next();
308
- }).order(-1)
309
- ]);
310
-
311
- const response = await httpKernel.request(HttpRequest.GET('/user/name1'));
312
- expect(response.statusCode).toEqual(200);
313
-
314
- expect(order).toEqual([3, 1, 2]);
315
- });
316
-
317
-
318
- test('middleware for module', async () => {
319
-
320
- class MyControllerA {
321
- @http.GET('/a/:name')
322
- hello(name: string) {
323
- return name;
324
- }
325
- }
326
-
327
- class MyControllerB {
328
- @http.GET('/b/:name')
329
- hello(name: string) {
330
- return name;
331
- }
332
- }
333
- const moduleA = new AppModule({controllers: [MyControllerA], providers: [MyControllerA]}, 'a');
334
- const moduleB = new AppModule({controllers: [MyControllerB], providers: [MyControllerB]}, 'b');
335
-
336
- const httpKernel = createHttpKernel([
337
- ], [], [], [
338
- httpMiddleware.for((req, res, next) => {
339
- res.setHeader('middleware', '1');
340
- next();
341
- }).forModules(moduleB),
342
- ], [moduleA, moduleB]);
343
-
344
- {
345
- const response = await httpKernel.request(HttpRequest.GET('/a/name1'));
346
- expect(response.statusCode).toEqual(200);
347
- expect(response.getHeader('middleware')).toEqual(undefined);
348
- }
349
-
350
- {
351
- const response = await httpKernel.request(HttpRequest.GET('/b/name1'));
352
- expect(response.statusCode).toEqual(200);
353
- expect(response.getHeader('middleware')).toEqual('1');
354
- }
355
- });
356
-
357
-
358
- test('middleware self module', async () => {
359
- class MyControllerA {
360
- @http.GET('/a/:name')
361
- hello(name: string) {
362
- return name;
363
- }
364
- }
365
- const moduleA = new AppModule({controllers: [MyControllerA]});
366
-
367
- const httpKernel = createHttpKernel([Controller], [], [], [httpMiddleware.for((req, res, next) => {
368
- res.setHeader('middleware', '1');
369
- next();
370
- }).forSelfModules()], [moduleA]);
371
-
372
- {
373
- const response = await httpKernel.request(HttpRequest.GET('/user/name1'));
374
- expect(response.statusCode).toEqual(200);
375
- expect(response.getHeader('middleware')).toEqual('1');
376
- }
377
-
378
- {
379
- const response = await httpKernel.request(HttpRequest.GET('/a/name1'));
380
- expect(response.statusCode).toEqual(200);
381
- expect(response.getHeader('middleware')).toEqual(undefined);
382
- }
383
- });
384
-
385
- test('middleware class type', async () => {
386
- class MyMiddleware {
387
- execute(request: HttpRequest, response: HttpResponse, next: (error?: any) => void) {
388
- response.setHeader('middleware', '1');
389
- next();
390
- }
391
- }
392
-
393
- const httpKernel = createHttpKernel([Controller], [MyMiddleware], [], [httpMiddleware.for(MyMiddleware)]);
394
-
395
- const response = await httpKernel.request(HttpRequest.GET('/user/name1'));
396
- expect(response.statusCode).toEqual(200);
397
- expect(response.getHeader('middleware')).toEqual('1');
398
- });
399
-
400
-
401
- test('middleware on http controller', async () => {
402
- class MyMiddleware {
403
- execute(request: HttpRequest, response: HttpResponse, next: (error?: any) => void) {
404
- response.setHeader('middleware_a', '1');
405
- next();
406
- }
407
- }
408
-
409
- @http.middleware(MyMiddleware)
410
- class MyControllerA {
411
- @http.GET('/a/:name')
412
- a(name: string) {
413
- return name;
414
- }
415
-
416
- @http.GET('/b/:name').middleware((req, res, next) => {
417
- res.setHeader('middleware_b', '1');
418
- next();
419
- })
420
- b(name: string) {
421
- return name;
422
- }
423
- }
424
-
425
- const httpKernel = createHttpKernel([MyControllerA], [MyMiddleware]);
426
-
427
- {
428
- const response = await httpKernel.request(HttpRequest.GET('/a/name1'));
429
- expect(response.statusCode).toEqual(200);
430
- expect(response.getHeader('middleware_a')).toEqual('1');
431
- expect(response.getHeader('middleware_b')).toEqual(undefined);
432
- }
433
-
434
- {
435
- const response = await httpKernel.request(HttpRequest.GET('/b/name1'));
436
- expect(response.statusCode).toEqual(200);
437
- expect(response.getHeader('middleware_a')).toEqual('1');
438
- expect(response.getHeader('middleware_b')).toEqual('1');
439
- }
440
- });
@@ -1,26 +0,0 @@
1
- import { expect, test } from '@jest/globals';
2
- import { HttpRequest } from '../src/model';
3
-
4
- test('request model json', async () => {
5
- const request = HttpRequest.POST('/').json({ hello: 'world' }).build();
6
- const buffers = [];
7
-
8
- for await (const chunk of request) {
9
- buffers.push(chunk);
10
- }
11
-
12
- const bodyBuffer = Buffer.concat(buffers).toString();
13
- expect(bodyBuffer).toBe('{"hello":"world"}');
14
- });
15
-
16
- test('request model body', async () => {
17
- const request = HttpRequest.POST('/').body("hello").build();
18
- const buffers = [];
19
-
20
- for await (const chunk of request) {
21
- buffers.push(chunk);
22
- }
23
-
24
- const bodyBuffer = Buffer.concat(buffers).toString();
25
- expect(bodyBuffer).toBe('hello');
26
- });
@@ -1,32 +0,0 @@
1
- import { App } from '@deepkit/app';
2
- import { expect, test } from '@jest/globals';
3
- import { HttpModule } from '../src/module';
4
- import { HttpKernel } from '../src/kernel';
5
- import { HttpRequest } from '../src/model';
6
- import { http } from '../src/decorator';
7
-
8
- test('module basic functionality', async () => {
9
- class Controller {
10
- @http.GET('hello')
11
- hello() {
12
- return 'hi';
13
- }
14
- }
15
-
16
- const app = new App({
17
- controllers: [
18
- Controller,
19
- ],
20
- imports: [
21
- new HttpModule()
22
- ]
23
- });
24
-
25
- const httpKernel = app.get(HttpKernel);
26
-
27
- {
28
- const response = await httpKernel.request(HttpRequest.GET('/hello'));
29
- expect(response.statusCode).toBe(200);
30
- expect(response.json).toContain('hi');
31
- }
32
- });