typescript - Parsarea șirului body folosind middy atunci când se apelează un handler AWS lambda cu Jest?
Preluarea unui handler Lambda scris în TypeScript
const identityUrl: ValidatedEventAPIGatewayProxyEvent<typeof schema> = async (event) => {
const iFRequest = event.body as unknown as IFRequest;
const fileUrl = iFRequest;
return formatJSONResponse({
result: fileUrl,
});
}
export const main = middyfy(identityFileGetSigner);
Și apelarea acestuia cu un test Jest duce la transmiterea corpului către lambda ca un șir neprocesat.
const defaultEvent: APIGatewayProxyEvent = {
httpMethod: 'post',
headers: {Authorization: "dummyToken"},
body: JSON.stringify(apiParamsBasic),
isBase64Encoded: false,
path: '/url',
multiValueQueryStringParameters: null,
multiValueHeaders: null,
pathParameters: null,
queryStringParameters: null,
stageVariables: null,
requestContext: null,
resource: ''
}
test('Empty list', async () => {
const result1 = await main(defaultEvent, defaultContext);
}
Cum pot să fac ca Middy să analizeze șirul?
Răspuns #1
Am avut aceeași problemă de mai sus, unde șirul JSON nu era analizat de middy în testele Jest.
Adăugarea antetului Content-Type ca application/json în headers în evenimentul de test a rezolvat problema.
În evenimentul tău de test de mai sus, ar arăta astfel:
const defaultEvent: APIGatewayProxyEvent = {
httpMethod: 'post',
headers: { Authorization: "dummyToken", 'Content-Type': 'application/json' },
body: JSON.stringify(apiParamsBasic),
isBase64Encoded: false,
path: '/url',
multiValueQueryStringParameters: null,
multiValueHeaders: null,
pathParameters: null,
queryStringParameters: null,
stageVariables: null,
requestContext: null,
resource: ''
}
