From 6a90c99e703efbe79d03d78d9ded04f72095b4e8 Mon Sep 17 00:00:00 2001 From: Ivan Kerin Date: Tue, 2 Oct 2018 07:25:24 +0300 Subject: [PATCH] Add type definitions to lambda-tester package (#29327) --- types/lambda-tester/index.d.ts | 33 +++++++++++++++++++ types/lambda-tester/lambda-tester-tests.ts | 38 ++++++++++++++++++++++ types/lambda-tester/tsconfig.json | 16 +++++++++ types/lambda-tester/tslint.json | 1 + 4 files changed, 88 insertions(+) create mode 100644 types/lambda-tester/index.d.ts create mode 100644 types/lambda-tester/lambda-tester-tests.ts create mode 100644 types/lambda-tester/tsconfig.json create mode 100644 types/lambda-tester/tslint.json diff --git a/types/lambda-tester/index.d.ts b/types/lambda-tester/index.d.ts new file mode 100644 index 0000000000..b65ac009c6 --- /dev/null +++ b/types/lambda-tester/index.d.ts @@ -0,0 +1,33 @@ +// Type definitions for lambda-tester 3.5 +// Project: https://github.com/vandium-io/lambda-tester#readme +// Definitions by: Ivan Kerin +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped +// TypeScript Version: 2.3 + +import { Context, ClientContext, CognitoIdentity, Handler } from "aws-lambda"; + +declare namespace lambdaTester { + type Verifier = (result: any) => void; + + class LambdaTester { + event(event: any): this; + context(context: Context): this; + clientContext(clientContext: ClientContext): this; + identity( + cognitoIdentityId: string, + cognitoIdentityPoolId: string + ): this; + timeout(seconds: number): this; + xray(): this; + expectSucceed(verifier: Verifier): this; + expectFail(verifier: Verifier): this; + expectError(verifier: Verifier): this; + expectResult(verifier: Verifier): this; + expectReject(verifier: Verifier): this; + expectResolve(verifier: Verifier): this; + } +} + +declare function lambdaTester(handler: Handler): lambdaTester.LambdaTester; + +export = lambdaTester; diff --git a/types/lambda-tester/lambda-tester-tests.ts b/types/lambda-tester/lambda-tester-tests.ts new file mode 100644 index 0000000000..ed2b7d875f --- /dev/null +++ b/types/lambda-tester/lambda-tester-tests.ts @@ -0,0 +1,38 @@ +import * as lambdaTester from "lambda-tester"; +import { Handler, Context, ClientContext } from "aws-lambda"; + +const handler: Handler = () => Promise.resolve(); +const context: Context = {} as any; +const clientContext: ClientContext = {} as any; + +interface TResult { + data: string; +} +interface TError { + message: string; +} + +lambdaTester(handler) + .event({ test: "123" }) + .context(context) + .clientContext(clientContext) + .xray() + .identity("123", "123") + .expectSucceed((result: TResult) => { + const t: string = result.data; + }) + .expectFail((error: TError) => { + const t: string = error.message; + }) + .expectResolve((result: TResult) => { + const t: string = result.data; + }) + .expectReject((error: TError) => { + const t: string = error.message; + }) + .expectResult((result: TResult) => { + const t: string = result.data; + }) + .expectError((error: TError) => { + const t: string = error.message; + }); diff --git a/types/lambda-tester/tsconfig.json b/types/lambda-tester/tsconfig.json new file mode 100644 index 0000000000..11894ba0d0 --- /dev/null +++ b/types/lambda-tester/tsconfig.json @@ -0,0 +1,16 @@ +{ + "compilerOptions": { + "module": "commonjs", + "lib": ["es6"], + "noImplicitAny": true, + "noImplicitThis": true, + "strictNullChecks": true, + "strictFunctionTypes": true, + "baseUrl": "../", + "typeRoots": ["../"], + "types": [], + "noEmit": true, + "forceConsistentCasingInFileNames": true + }, + "files": ["index.d.ts", "lambda-tester-tests.ts"] +} diff --git a/types/lambda-tester/tslint.json b/types/lambda-tester/tslint.json new file mode 100644 index 0000000000..3db14f85ea --- /dev/null +++ b/types/lambda-tester/tslint.json @@ -0,0 +1 @@ +{ "extends": "dtslint/dt.json" }