У меня есть работающая лямбда-функция, и я пытаюсь написать для нее модульный тест. Как правильно издеваться над объектами Context
и Callback
, чтобы проверить реакцию функции?
import Game from "../classes/Game";
import HttpResponse from "../classes/HttpResponse";
import { Handler, Context, Callback } from 'aws-lambda';
import { DataMapper } from '@aws/dynamodb-data-mapper';
import DynamoDB = require('aws-sdk/clients/dynamodb');
const client = new DynamoDB({region: 'us-west-2'});
const mapper = new DataMapper({client});
const put: Handler = (event: any, context: Context, callback: Callback) => {
if (!validateInput) {
const errMsg = `Missing data in input: ${event}`;
const response: HttpResponse = {
statusCode: 400,
body: errMsg
}
callback(errMsg, response);
}
const game: Game = new Game();
game.id = event.id;
game.name = event.name;
game.imageUrl = event.imageUrl;
mapper.put({item: game}).then(() => {
const response: HttpResponse = {
statusCode: 200,
body: `Saved new game to DynamoDB: ${JSON.stringify(game)}`
}
callback(undefined, response);
});
}
function validateInput (input: any): boolean {
if (input && input.id && input.name) {
return true;
}
return false;
}
export { put };