npm.io
1.0.12 • Published 8 years ago

@philca/lambda-test-utils

Licence
ISC
Version
1.0.12
Deps
2
Size
7 kB
Vulns
10
Weekly
0

API

loadDynamo(< tablename>, < data>)

Load a table with a record.

Returns: a promise.

Where:

tablename: name of dynamo table
data: json object of data.
If data is an array, each item in the array will be loaded.

deleteDynamo(< primarykey field>, < primary key value>, [sort key field], [sort key value])

Delete an item from a dynamo table.

Returns: a promise.

Where:

tablename: name of dynamo table
primarykey field: field name of primary key
primarykey value: value for primary key
sortkey field: (optional) field name of sort key
sortkey value: (optional) value for sort key

getAndDeleteItemsFromDynamo(< tablename>, < primarykey field>, < primary key value>, [sort key field])

Gets one or more items from a dynamo table, returns them, and deletes them. Use this function to get the items created by the lambda under test and clean them up.

Note: This is an async function. Called like:

const addedLoki = await getAndDeleteItemsFromDynamo(process.env.DYNAMO_LOKI_TABLE, res.body.lokiId);

or

const addedMetadata = await getAndDeleteItemsFromDynamo(process.env.DYNAMO_METADATA_TABLE, 'entityKey', res.body.lokiId, 'metavalueKey');

Returns: a json object that contains an array or Items.

Where:

tablename: name of dynamo table
primarykey field: field name of primary key
primarykey value: value for primary key
sortkey field: (optional) field name of sort key

invokeLambda(< lambda name>, < event>, < path>)

Execute a lambda function.

If the environment variable LOCAL_LAMBDA is true, the lambda will be run locally, else the lambda within AWS (in your default account) will be run.

let res = await invokeLambda('golokiImages-getimagelabels', event, __dirname);

Returns: a promise.

Where:

lambda_name: The name of the lambda_name
event: The json event passed to the lambda. Like:

const event = {
	"queryStringParameters": {},
	"pathParameters": {
		"foo": "bar"
	},
	"body": null
};

path: path to the local lambda handler. Assumes index.js in the path contains the handler.