From a467ab2394cca602e59b43a870e949986eda9cfe Mon Sep 17 00:00:00 2001 From: 1482568 Date: Wed, 1 May 2024 10:50:29 -0500 Subject: [PATCH] fix(parser): set APIGatewayProxyEventSchema body and query string keys to be nullable --- packages/parser/src/schemas/apigw.ts | 6 +++--- .../tests/events/apiGatewayAuthorizerRequestEvent.json | 6 +++++- packages/parser/tests/unit/envelopes/apigwt.test.ts | 4 ++-- 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/packages/parser/src/schemas/apigw.ts b/packages/parser/src/schemas/apigw.ts index 72878de03a..6369385e69 100644 --- a/packages/parser/src/schemas/apigw.ts +++ b/packages/parser/src/schemas/apigw.ts @@ -97,14 +97,14 @@ const APIGatewayProxyEventSchema = z.object({ 'OPTIONS', ]), headers: z.record(z.string()).optional(), - queryStringParameters: z.record(z.string()).optional(), + queryStringParameters: z.record(z.string()).nullable(), multiValueHeaders: z.record(z.array(z.string())).optional(), - multiValueQueryStringParameters: z.record(z.array(z.string())).optional(), + multiValueQueryStringParameters: z.record(z.array(z.string())).nullable(), requestContext: APIGatewayEventRequestContext, pathParameters: z.record(z.string()).optional().nullish(), stageVariables: z.record(z.string()).optional().nullish(), isBase64Encoded: z.boolean().optional(), - body: z.string().optional(), + body: z.string().nullable(), }); export { APIGatewayProxyEventSchema, APIGatewayCert }; diff --git a/packages/parser/tests/events/apiGatewayAuthorizerRequestEvent.json b/packages/parser/tests/events/apiGatewayAuthorizerRequestEvent.json index 6a80fff823..3177f389b4 100644 --- a/packages/parser/tests/events/apiGatewayAuthorizerRequestEvent.json +++ b/packages/parser/tests/events/apiGatewayAuthorizerRequestEvent.json @@ -20,6 +20,9 @@ "queryStringParameters": { "QueryString1": "queryValue1" }, + "multiValueQueryStringParameters": { + "QueryString1": ["queryValue1"] + }, "pathParameters": {}, "stageVariables": { "StageVar1": "stageValue1" @@ -64,5 +67,6 @@ "resourceId": "ANY /request", "resourcePath": "/request", "stage": "test" - } + }, + "body": null } diff --git a/packages/parser/tests/unit/envelopes/apigwt.test.ts b/packages/parser/tests/unit/envelopes/apigwt.test.ts index 0a1e675ae4..1055e15f43 100644 --- a/packages/parser/tests/unit/envelopes/apigwt.test.ts +++ b/packages/parser/tests/unit/envelopes/apigwt.test.ts @@ -24,7 +24,7 @@ describe('ApigwEnvelope ', () => { it('should throw no body provided', () => { const testEvent = TestEvents.apiGatewayProxyEvent as APIGatewayProxyEvent; - testEvent.body = undefined; + testEvent.body = null; expect(() => ApiGatewayEnvelope.parse(testEvent, TestSchema)).toThrow( ParseError @@ -56,7 +56,7 @@ describe('ApigwEnvelope ', () => { it('should return success false with original body if no body provided', () => { const testEvent = TestEvents.apiGatewayProxyEvent as APIGatewayProxyEvent; - testEvent.body = undefined; + testEvent.body = null; const resp = ApiGatewayEnvelope.safeParse(testEvent, TestSchema); expect(resp).toEqual({