deno.land / x / ky@v0.31.3 / test / helpers / create-http-test-server.ts

create-http-test-server.ts
نووسراو ببینە
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
import http from 'node:http';import net from 'node:net';import express from 'express';import pify from 'pify';import bodyParser from 'body-parser';
export type HttpServerOptions = { bodyParser?: express.NextFunction | false;};
export interface ExtendedHttpTestServer extends express.Express { http: http.Server; url: string; port: number; hostname: string; close: () => Promise<any>;}
export const createHttpTestServer = async (options: HttpServerOptions = {}): Promise<ExtendedHttpTestServer> => { const server = express() as ExtendedHttpTestServer; server.http = http.createServer(server);
server.set('etag', false);
if (options.bodyParser !== false) { server.use( bodyParser.json({ limit: '1mb', type: 'application/json', ...options.bodyParser, }), ); server.use( bodyParser.text({ limit: '1mb', type: 'text/plain', ...options.bodyParser, }), ); server.use( bodyParser.urlencoded({ limit: '1mb', type: 'application/x-www-form-urlencoded', extended: true, ...options.bodyParser, }), ); server.use( bodyParser.raw({ limit: '1mb', type: 'application/octet-stream', ...options.bodyParser, }), ); }
await pify(server.http.listen.bind(server.http))();
server.port = (server.http.address() as net.AddressInfo).port; server.url = `http://localhost:${server.port}`; server.hostname = 'localhost';
server.close = async () => pify(server.http.close.bind(server.http))();
return server;};
ky

Version Info

Tagged at
a year ago