in-process-request
Advanced tools
Comparing version
@@ -7,3 +7,3 @@ "use strict"; | ||
const res = httpMock_1.createMockResponse(req); | ||
res.once('_response', resolve); | ||
res.once('__mock_response', resolve); | ||
app(req, res); | ||
@@ -10,0 +10,0 @@ }); |
@@ -16,2 +16,3 @@ /// <reference types="node" /> | ||
statusCode: number; | ||
statusMessage: string; | ||
headers: OutgoingHttpHeaders; | ||
@@ -18,0 +19,0 @@ } |
@@ -15,2 +15,18 @@ "use strict"; | ||
}; | ||
const getRawHeaders = (headers) => { | ||
const rawHeaders = []; | ||
Object.entries(headers).forEach(([key, value]) => { | ||
if (Array.isArray(value)) { | ||
value.forEach(v => { | ||
rawHeaders.push(key); | ||
rawHeaders.push(v); | ||
}); | ||
} | ||
else if (typeof value === 'string') { | ||
rawHeaders.push(key); | ||
rawHeaders.push(value); | ||
} | ||
}); | ||
return rawHeaders; | ||
}; | ||
const toBuffer = (param, encoding) => { | ||
@@ -36,2 +52,3 @@ if (Buffer.isBuffer(param)) { | ||
const res = new http_1.ServerResponse(req); | ||
res.shouldKeepAlive = false; | ||
const chunks = []; | ||
@@ -58,2 +75,3 @@ const addChunk = (chunk, encoding) => chunks.push(toBuffer(chunk, encoding)); | ||
statusCode: res.statusCode, | ||
statusMessage: res.statusMessage, | ||
headers, | ||
@@ -63,3 +81,3 @@ }; | ||
res.emit('finish'); | ||
res.emit('_response', response); | ||
res.emit('__mock_response', response); | ||
if (typeof callback === 'function') { | ||
@@ -83,4 +101,10 @@ callback(); | ||
req.headers = keysToLowerCase(opts.headers || {}); | ||
req.rawHeaders = getRawHeaders(opts.headers || {}); | ||
req.httpVersionMajor = 1; | ||
req.httpVersionMinor = 1; | ||
req.httpVersion = '1.1'; | ||
if (contentLength > 0 && !req.headers['content-length']) { | ||
req.headers['content-length'] = contentLength.toString(); | ||
req.rawHeaders.push('content-length'); | ||
req.rawHeaders.push(contentLength.toString()); | ||
} | ||
@@ -87,0 +111,0 @@ req._read = () => { |
{ | ||
"name": "in-process-request", | ||
"version": "0.0.8", | ||
"version": "0.0.9", | ||
"license": "(MIT OR Apache-2.0)", | ||
@@ -33,9 +33,9 @@ "scripts": { | ||
"devDependencies": { | ||
"@types/jest": "^24.0.15", | ||
"@types/node": "^12.0.8", | ||
"jest": "^24.8.0", | ||
"ts-jest": "^24.0.2", | ||
"ts-node": "^8.3.0", | ||
"typescript": "^3.5.2" | ||
"@types/jest": "^25.2.1", | ||
"@types/node": "^13.13.4", | ||
"jest": "^25.4.0", | ||
"ts-jest": "^25.4.0", | ||
"ts-node": "^8.9.1", | ||
"typescript": "^3.8.3" | ||
} | ||
} |
@@ -16,6 +16,5 @@ # in-process-request | ||
It has been tested with the following node versions | ||
* v6 | ||
* v8 | ||
* v10 | ||
* v12 | ||
* v13 | ||
@@ -50,2 +49,3 @@ ## Usage | ||
* `statusCode` - status code of the response | ||
* `statusMessage` - status message of the response | ||
* `headers` - object with response headers | ||
@@ -66,3 +66,3 @@ * `body` - `Buffer` containing the body | ||
cons myAppHandler = inProcessRequest(myApp); | ||
const myAppHandler = inProcessRequest(myApp); | ||
@@ -78,2 +78,3 @@ const requestOptions = { | ||
console.log('Status Code', response.statusCode); | ||
console.log('Status Message', response.statusMessage); | ||
console.log('Is UTF8 body?', response.isUTF8); | ||
@@ -80,0 +81,0 @@ }) |
Mixed license
License(Experimental) Package contains multiple licenses.
Found 1 instance in 1 package
13070
17.97%9
12.5%185
15.63%173
0.58%1
Infinity%