В настоящее время у меня возникают проблемы при попытке сделать мангуст-запрос к моей БД во время юнит-тестов. Я пытаюсь получить пользователя, чтобы использовать данные для этого конкретного теста. В идеале, если есть решение, я могу разветвлять его перед каждым хуком, но в настоящий момент я не пытаюсь вернуть объект из БД.
Мой тестовый набор
let assert = require('assert');
let request = require('supertest');
let mongoose = require('mongoose');
let User = require('../app/models/User');
it('should be able to update a user', function (done) {
User.findOne({email: 'example@email.com'})
.then(user => {
console.log(user);
done();
}).catch(done);
});
after((done) => {
done();
});
});
В настоящее время я получаю эту ошибку:
Error: Timeout of 2000ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure it resolves. (E:\DWA\express-mvc\test\test.js)
Мне не удалось обработать запрос достаточно далеко, чтобы проверить, является ли это проблемой с получением пользователя или самого кода.
У меня есть тесты, которые запускаются так:
request(url)
.post('/login')
.send({email: 'example@email.com', password: 'password'})
.expect(302)
.end(function (err, res) {
if (err) {
throw err;
}
done();
});
Но я не уверен, как подключиться к БД только для одного запроса для получения пользователя, а не использовать один из моих маршрутов к контроллеру