Я использовал проверку Joi для проверки входящего лямбда-события AWS, но мне стало известно о проекте под названием vandium (https://www.npmjs.com/package/vandium), который обрабатывает проверку события для ламабды, запускаемой уведомлением о событии S3. Код выглядит следующим образом:
const vandium = require('vandium');
exports.handler = vandium.s3(async(event, content) => {
...
});
Но это привело к сбою тестов компонентов - использует chai, hook-std, cucumber, aws-sdk-mock и aws-lambda-mock-content. Это шаг Когда вкомпонентный тест, в котором, как мне кажется, возникает проблема:
When('the lambda is triggered by the event notification', async() => {
let unhookStdOut = hookStd.stdout(output => {
world.logs += output;
});
let unhookErrOut = hookStd.stderr(output => {
world.errors += output;
});
try {
world.actualOutput = await index.handler(world.event, ctx);
unhookStdOut();
unhookErrOut();
} catch (error) {
console.log(error);
world.actualError = error;
}
});
Я не мог понять, в чем проблема, поэтому я закомментировал строки unhookStdOut (от 2 до 4 и 12), чтобы увидеть ведение журнала, и я получил:
TypeError: unhookErrOut is not a function
at CustomWorld.When
at <anonymous>
at process._tickDomainCallback (internal/process/next_tick.js:228:7)
Это не имело смысла, так как я не менял ни один из тестов компонентов, прежде чем я добавил в vandium, и они работали. Любые идеи, это ошибка с vandium?