如何为 TypeScript Lambda 函数编写单元测试?

ket*_*ugi 5 node.js typescript aws-lambda

我有一个可用的 Lambda 函数,我正在尝试为它编写单元测试。如何正确模拟ContextCallback对象以检查函数的响应?

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 };
Run Code Online (Sandbox Code Playgroud)