Skip to content

Commit b53e6ae

Browse files
committed
fix: koa tests - ok
Signed-off-by: seven <zilisheng1996@gmail.com>
1 parent 5f39279 commit b53e6ae

File tree

5 files changed

+326
-45
lines changed

5 files changed

+326
-45
lines changed

package-lock.json

Lines changed: 275 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@
5656
"@types/express": "^5.0.0",
5757
"@types/jest": "^29.5.13",
5858
"@types/koa": "^2.15.0",
59+
"@types/koa-static": "^4.0.4",
5960
"@types/koa__router": "^12.0.4",
6061
"@types/node": "^22.7.4",
6162
"@typescript-eslint/eslint-plugin": "^8.8.0",
@@ -70,6 +71,7 @@
7071
"jest": "^29.7.0",
7172
"koa": "^2.15.3",
7273
"koa-body": "^6.0.1",
74+
"koa-static": "^5.0.0",
7375
"prettier": "^3.3.3",
7476
"ts-jest": "^29.2.5",
7577
"ts-node": "^10.9.2",

src/context.ts

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,13 +27,32 @@ const requestBody = (event: Event) => {
2727
throw new Error(`Unexpected event.body type: ${typeof event.body}`);
2828
};
2929

30+
const requestHeaders = (event: Event) => {
31+
const initialHeader = {} as Record<string, string>;
32+
33+
// if (event.multiValueHeaders) {
34+
// Object.keys(event.multiValueHeaders).reduce((headers, key) => {
35+
// headers[key.toLowerCase()] = event.multiValueHeaders[key].join(', ');
36+
// return headers;
37+
// }, initialHeader);
38+
// }
39+
40+
return Object.keys(event.headers).reduce((headers, key) => {
41+
headers[key.toLowerCase()] = event.headers[key];
42+
return headers;
43+
}, initialHeader);
44+
};
45+
3046
export const constructFrameworkContext = (event: Event, context: Context) => {
3147
debug(`constructFrameworkContext: ${JSON.stringify({ event, context })}`);
48+
const body = requestBody(event);
49+
const headers = requestHeaders(event);
50+
3251
const request = new ServerlessRequest({
3352
method: event.httpMethod,
34-
headers: event.headers,
3553
path: event.path,
36-
body: requestBody(event),
54+
headers,
55+
body,
3756
remoteAddress: '',
3857
url: url.format({
3958
pathname: event.path,

src/serverlessRequest.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ export default class ServerlessRequest extends IncomingMessage {
3131
end: NO_OP,
3232
destroy: NO_OP,
3333
path: request.path,
34+
headers: request.headers,
3435
} as unknown as Socket);
3536

3637
const combinedHeaders = Object.fromEntries(

0 commit comments

Comments
 (0)