Usar Jest con DynamoDB
Con las API Setup/Teardown Global y Ambiente Asíncrono de Test , Jest puede funcionar sin problemas con DynamoDB.
Utiliza el preset de jest-dynamodb
Jest DynamoDB proporciona toda la configuración necesaria para ejecutar test que usan DynamoDB.
Primero, instala
@shelf/jest-dynamodb
yarn add @shelf/jest-dynamodb --dev
- Specify preset in your Jest configuration:
{
"preset": "@shelf/jest-dynamodb"
}
- Crea
jest-dynamodb-config.js
y define tablas DynamoDB
Véase el API de crear tablas
module.exports = {
tables: [
{
TableName: `archivos`,
KeySchema: [{AttributeName: 'id', KeyType: 'HASH'}],
AttributeDefinitions: [{AttributeName: 'id', AttributeType: 'S'}],
ProvisionedThroughput: {ReadCapacityUnits: 1, WriteCapacityUnits: 1},
},
// etc
],
};
- Configurar cliente DynamoDB
const {DocumentClient} = require('aws-sdk/clients/dynamodb');
const esTest = process.env.JEST_WORKER_ID;
const config = {
convertEmptyValues: true,
...(esTest && {
endpoint: 'localhost:8000',
sslEnabled: false,
region: 'local-env',
}),
};
const ddb = new DocumentClient(config);
- Escribe Tests
it('debería insertar elemento en la tabla', async () => {
await ddb
.put({TableName: 'archivos', Objeto: {id: '1', hola: 'mundo'}})
.promise();
const {Item} = await ddb.get({TableName: 'archivos', Key: {id: '1'}}).promise();
expect(Item).toEqual({
id: '1',
hola: 'mundo',
});
});
There's no need to load any dependencies.
Veáse la documentación para más detalles.