Мой тест mocha не существует, когда драйвер mongodb не может подключиться (потому что БД находится в автономном режиме, например).
Как освободить ресурс для тестового выхода? Клиент нулевой, поэтому я не могу использовать client.close().
Я знаю, что есть флаг мокко --exit, но я бы хотел закрыть драйвер mongo.
Спасибо!
мой код похож:
static async create(
dbName: string = db_name,
url: string = db_url,
): Promise<MongoDbContext> {
return new Promise<MongoDbContext>((resolve, reject) => {
mongodb.MongoClient.connect(
url,
{
keepAlive: 1000,
connectTimeoutMS: 1000,
socketTimeoutMS: 1000,
},
function(err, client) {
if (err) {
console.info(err)
return reject(err)
}
console.info('Connected successfully to server')
resolve(new MongoDbContext(client, dbName))
},
)
})
}
спецификация
it('should throw if error occures', async function() {
this.timeout(1000)
try {
mongo = await MongoDbContext.create('artifact_test')
} catch (error) {
return
}
fail('there was no exception')
})
Обновлять: теперь он завершается через определенное время, но не выяснил, какая опция влияет на него, потому что в примере все установлено на 1000 мс, но все еще дольше
хорошая идея, я пытаюсь `{keepAlive: 1000, connectTimeoutMS: 2000, socketTimeoutMS: 2000, socketOptions: {connectTimeoutMS: 2000, socketTimeoutMS: 2000,},},` но ни один не работает
Можете выложить обновленный код с опциями? И какой у вас тайм-аут теста мокко? По умолчанию это 2 секунды. Это тот же самый тайм-аут соединения, который вы используете здесь.
Вы были правы, решение было в конфиге, спасибо! обновил пост
Отличные новости! Опубликуйте его как ответ на свой вопрос и примите его, а не добавляйте в вопрос. Таким образом, другие пользователи, у которых возникла такая же проблема, смогут быстрее ее найти.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Клиент пытался повторно подключиться, поэтому вам необходимо установить следующее свойство конфигурации:
{
autoReconnect: false
}
Вы пробовали вызвать connect с опциями, в частности
connectTimeoutMSиsocketTimeoutMS?