diff --git a/index-another-concurrent-test.test.js b/index-another-concurrent-test.test.js index 17b9739..5d99f8e 100644 --- a/index-another-concurrent-test.test.js +++ b/index-another-concurrent-test.test.js @@ -1,16 +1,23 @@ -const {DocumentClient} = require('aws-sdk/clients/dynamodb'); +const {DynamoDB} = require('@aws-sdk/client-dynamodb'); +const {DynamoDBDocument} = require('@aws-sdk/lib-dynamodb'); -const ddb = new DocumentClient({ - convertEmptyValues: true, - endpoint: 'localhost:8000', - sslEnabled: false, - region: 'local-env' -}); +const ddb = DynamoDBDocument.from( + new DynamoDB({ + endpoint: 'http://localhost:8000', + tls: false, + region: 'local-env' + }), + { + marshallOptions: { + convertEmptyValues: true + } + } +); it('should insert item into another table concurrently', async () => { - await ddb.put({TableName: 'users', Item: {id: '1', hello: 'world'}}).promise(); + await ddb.put({TableName: 'users', Item: {id: '1', hello: 'world'}}); - const {Item} = await ddb.get({TableName: 'users', Key: {id: '1'}}).promise(); + const {Item} = await ddb.get({TableName: 'users', Key: {id: '1'}}); expect(Item).toEqual({ id: '1', diff --git a/index.test.js b/index.test.js index 37e16c0..78bd2b8 100644 --- a/index.test.js +++ b/index.test.js @@ -1,16 +1,23 @@ -const {DocumentClient} = require('aws-sdk/clients/dynamodb'); +const {DynamoDB} = require('@aws-sdk/client-dynamodb'); +const {DynamoDBDocument} = require('@aws-sdk/lib-dynamodb'); -const ddb = new DocumentClient({ - convertEmptyValues: true, - endpoint: 'localhost:8000', - sslEnabled: false, - region: 'local-env' -}); +const ddb = DynamoDBDocument.from( + new DynamoDB({ + endpoint: 'http://localhost:8000', + tls: false, + region: 'local-env' + }), + { + marshallOptions: { + convertEmptyValues: true + } + } +); it('should insert item into table', async () => { - await ddb.put({TableName: 'files', Item: {id: '1', hello: 'world'}}).promise(); + await ddb.put({TableName: 'files', Item: {id: '1', hello: 'world'}}); - const {Item} = await ddb.get({TableName: 'files', Key: {id: '1'}}).promise(); + const {Item} = await ddb.get({TableName: 'files', Key: {id: '1'}}); expect(Item).toEqual({ id: '1', diff --git a/package.json b/package.json index 06058de..3a63fbe 100644 --- a/package.json +++ b/package.json @@ -53,9 +53,10 @@ "dynamodb-local": "0.0.31" }, "devDependencies": { + "@aws-sdk/client-dynamodb": "^3.26.0", + "@aws-sdk/lib-dynamodb": "^3.26.0", "@shelf/eslint-config": "0.19.0", "@shelf/prettier-config": "0.0.7", - "aws-sdk": "2.631.0", "eslint": "7.6.0", "husky": "4.2.5", "jest": "26.2.2", diff --git a/setup.js b/setup.js index cf746dc..3ba3b96 100644 --- a/setup.js +++ b/setup.js @@ -1,6 +1,6 @@ const {resolve} = require('path'); const cwd = require('cwd'); -const DynamoDB = require('aws-sdk/clients/dynamodb'); +const {DynamoDB} = require('@aws-sdk/client-dynamodb'); const DynamoDbLocal = require('dynamodb-local'); const debug = require('debug')('jest-dynamodb'); @@ -22,8 +22,8 @@ module.exports = async function () { } = typeof config === 'function' ? await config() : config; const dynamoDB = new DynamoDB({ - endpoint: `localhost:${port}`, - sslEnabled: false, + endpoint: `http://localhost:${port}`, + tls: false, region: 'local-env', ...clientConfig }); @@ -32,7 +32,7 @@ module.exports = async function () { try { const {TableNames: tableNames} = await Promise.race([ - dynamoDB.listTables().promise(), + dynamoDB.listTables({}), new Promise(resolve => setTimeout(resolve, 1000)) ]); await deleteTables(dynamoDB, tableNames); // cleanup leftovers @@ -53,7 +53,7 @@ module.exports = async function () { }; async function createTables(dynamoDB, tables) { - return Promise.all(tables.map(table => dynamoDB.createTable(table).promise())); + return Promise.all(tables.map(table => dynamoDB.createTable(table))); } async function deleteTables(dynamoDB, tableNames) { diff --git a/teardown.js b/teardown.js index ca46414..cfb9fcb 100644 --- a/teardown.js +++ b/teardown.js @@ -12,9 +12,7 @@ module.exports = async function (jestArgs) { } } else { const dynamoDB = global.__DYNAMODB_CLIENT__; - const {TableNames: tableNames} = await dynamoDB.listTables().promise(); - await Promise.all( - tableNames.map(tableName => dynamoDB.deleteTable({TableName: tableName}).promise()) - ); + const {TableNames: tableNames} = await dynamoDB.listTables(); + await Promise.all(tableNames.map(tableName => dynamoDB.deleteTable({TableName: tableName}))); } };