jest-dynamodb-local-docker
v3.1.1
Published
Jest preset for easily running tests using DynamoDB local
Downloads
884
Maintainers
Readme
jest-dynamodb-local-docker
Jest preset and helper functions for easily running tests using DynamoDB local
Usage
See the tests in this repo for example usage.
const {
getDynamodbClient,
getDynamodbDocumentClient,
createTable,
deleteTable,
} = require('jest-dynamodb-local-docker');
describe('test', () => {
beforeAll(async () => {
await createTable(/* table properties */);
});
afterAll(async () => {
await deleteTable(/* { tableName: 'table name' } */);
});
it('should work', async () => {
const ddb = getDynamodbDocumentClient(); // or use the standard DynamoDB Client with getDynamodbClient()
await ddb.put(/* put request */);
await expect(
ddb.get(/* get request */)
).toStrictEqual(/* the item we just wrote */);
});
});
Add to your Jest setup
Add the jest-dynamodb-local-docker
preset to your Jest config. For example:
// in your package.json
{
"jest": {
"preset": "jest-dynamodb-local-docker"
}
}
Globals (Deprecated)
global.createTable
- Creates a DynamoDB tableglobal.deleteTable
- Deletes a DynamoDB tableglobal.getDynamodbClient
andglobal.getDynamodbDocumentClient
- Get a standard DynamoDB Client or DynamoDB DocumentClient configured to use DynamoDB local
jest --runInBand
You may need to use the --runInBand
configuration flag when running your Jest tests. Otherwise, you can have multiple test workers trying to create/delete the same tables concurrently, which will probably lead to unexpected results.
Alternatively, if you ensure that each test uses a unique table, you should be able to run without --runInBand
.
Debugging
We use debug for debugging logs. To turn on the debugging logs, run your tests like:
DEBUG="jest-dynamodb-local-docker" jest --runInBand