Я запускаю пару контейнеров Docker, один с локальным запуском DynamoDB, а другой работает с Nodejs. Они связаны между собой, и я могу подтвердить связь работает на работающем:Время выполнения запроса DynamoDB в мокко-тесте
$ aws dynamodb list-tables --endpoint-url=http://dynamodb:8000
Я не думаю, что это часть проблемы, я просто перечислить его здесь для полноты картины.
Однако, я не могу получить следующий тестовый скрипт в мокко для работы. Испытание только раз из:
Error: timeout of 2000ms exceeded. Ensure the done() callback is being called in this test.
Вот тестовый скрипт:
'use strict';
var expect = require('chai').expect;
var aws = require('aws-sdk');
aws.config.update({ accessKeyId: 'fakeAccessKey', secretAccessKey: 'fakeSecretAccessKey', region: 'fakeRegion', });
var db = new aws.DynamoDB({ params: { endpoint: 'http://dynamodb:8000' }});
describe('queue-handler', function() {
it('should connect to dynamodb and list tables', function(done) {
console.log("Check for tables...");
db.listTables({}, function(err, data) {
console.log("list tables returned.");
if(err)
console.log("Error listTables: " + JSON.stringify(err, null, 2));
else
console.log("listTables: " + JSON.stringify(data, null, 2));
done();
});
});
});
я могу видеть «Проверка таблиц ...» вошли, но не «возвращается список таблиц.».
Нет опыта с этим сам, но из [Документов] (HTTP: // docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/DynamoDB.html#constructor_details) похоже, что 'endpoint' должно быть прямым свойством объекта' options', переданного конструктору: 'new aws.DynamoDB ({endpoint : ...}) ' – robertklep
@robertklep вот и все! Если вы опубликуете это как ответ, я соглашусь с ним –