Как написать модульный тест для лямбда-функции TypeScript? - PullRequest
2 голосов
/ 05 октября 2019

У меня есть работающая лямбда-функция, и я пытаюсь написать для нее модульный тест. Как правильно издеваться над объектами 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 };
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...