dynafixtures
v0.2.5
Published
Fixtures for DynamoDB
Downloads
3
Maintainers
Readme
Dynafixtures
Fixtures for DynamoDB using DynamoDB Local.
This package is meant to quickly implement fixtures for DynamoDB. Particularly handy if you want to unit test code that requires AWS DynamoDB.
Setup and teardown
Make sure you have DynamoDB running locally. This is as easy as downloading a file and then running a command. See the AWS documentation for more info.
Install the package:
npm install --save-dev dynafixtures
Create fixtures files for tables and records. See the test folder for examples (there are just JSONs for the correct DynamoDB API functions). Dynafixtures uses the createTable
and batchWriteItem
API calls of the AWS DynamoDB API.
The easiest way to start is to use the setup()
and teardown()
functions. setup()
is shorthand for initialize()
and fixtures()
, e.g. create tables and records in one go.
var tables = process.cwd() + '/test_tables.json';
var fixtures = [
process.cwd() + '/Forum_fixture.json',
process.cwd() + '/fixture2.json'
];
var port = 4567; // Defaults to 4567 if `typeof port` is not a number
dynafixtures.setup(tables, fixtures, port, function(err){
if (err) {
//Handle error
}
);
When the tests are completed, run:
dynafixtures.teardown(function(err){
if (err) {
// Handle error
}
});
Using DynamoDB during tests
Between setup and teardown (which you should do before and after each test, fits nicely in assert's before
and after
functions or). you can access the DynamoDB on your machine using this snippet:
var aws = require('aws-sdk');
var db = new aws.DynamoDB({
'accessKeyId': 'a',
'secretAccessKey':'b',
'endpoint':'http://localhost:4567', // Your port here
'region': 'eu-west-1'
});
// Now you can do DynamoDB calls using db.scan() or whatever.
// ...