-
Notifications
You must be signed in to change notification settings - Fork 0
/
createTestLambdaContext.ts
34 lines (31 loc) · 1.1 KB
/
createTestLambdaContext.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
import * as awslambda from "aws-lambda";
import * as uuid from "uuid";
import {ProxyEvent} from "../ProxyEvent";
export {createTestProxyEvent} from "./createTestProxyEvent";
const defaultContext: awslambda.Context = {
callbackWaitsForEmptyEventLoop: false,
functionName: "lambdafunction",
functionVersion: "1.0",
invokedFunctionArn: "",
memoryLimitInMB: "128",
awsRequestId: "",
logGroupName: "/aws/lambda/lambdafunction",
logStreamName: "",
getRemainingTimeInMillis: () => 60,
done: () => {
},
fail: () => {
},
succeed: () => {
}
};
export function createTestLambdaContext(proxyEvent: ProxyEvent, overrides: Partial<awslambda.Context> = {}): awslambda.Context {
const date = new Date();
return {
...defaultContext,
awsRequestId: proxyEvent.requestContext.requestId,
invokedFunctionArn: `arn:aws:lambda:us-east-1:${proxyEvent.requestContext.accountId}:function:lambdafunction`,
logStreamName: `${date.getFullYear()}/${date.getMonth()}/${date.getDay()}/[$LATEST]${uuid.v4().replace("-", "")}`,
...overrides
};
}