Я использую jest для проверки своей лямбда-функции aws.Мой тест выглядит следующим образом:
Лямбда-файл index2.ts
export const handler = async (event: APIGatewayEvent, context: Context) => {
const response = {"value1": 1, "value2": 2};
return {
statusCode: 200,
headers: {
"Access-Control-Allow-Origin": "*"
},
body: JSON.stringify(response)
};};
Тестовый файл index2.test.ts
import * as lambdaFunc from "../index2";
const lambdalocal = require('lambda-local');
const executeLambda = (event) => {
return lambdalocal.execute({
event: event,
lambdaFunc: lambdaFunc,
lambdaHandler: "handler",
callbackWaitsForEmptyEventLoop: true,
timeoutMs: 300,
verboseLevel: 1
}).then(response => {
return response;
})
.catch(error => {
return null;
});
};
describe("Your first test", function () {
it("returns success response", async (done) => {
const response = await executeLambda(lambdaEvent);
expect(response.statusCode).toEqual(200);
done();
});
});
Я установил время Jest в шутку.setup.js и тест выполняет поиск настроенного значения тайм-аута
jest.setTimeout(10000);
Я пробовал несколько решений, предложенных в нескольких сообщениях, и все еще с ошибкой "Тайм-аут - асинхронный обратный вызов не был вызван в течение 10000мс, заданного параметромjest.setTimeout».Может кто-нибудь, пожалуйста, укажите на проблему.Я использую Node 8.10.0, jest 23.3.14 и lambda-local 1.5.2.Я отладил тест, он прошел весь путь и вызвал оператор done ().