Пишу тест для проверки сохранения пользователя в базу Mongo (использую Mongoose).
Код теста
скопировал из документации:
const User = require('./../models/User');
describe('User', function() {
describe('#save()', function() {
const newUser = {
name: 'TestUser',
password: 'testPassword2',
email: 'test@test.ru'
};
it('should save without error', function(done) {
const user = new User(newUser);
console.log(user); //1
user.save(function(err) {
console.log('save');
if (err) done(err);
else done();
});
});
});
});
Получаю ошибку:
Error: Timeout of 2000ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure it resolves.
При этом console.log('save'); не отрабатывает. То есть функция user.save() просто не работает.
При этом практически аналогичный код в приложении:
let user = new User({name, password, email});
user.save((err) => {
if(err) {
res.send('ERROR! ' + JSON.stringify(err));
} else {
res.send('saved!');
}
});
вне теста работает с теми же передаваемыми данными.
В качестве тестовой базы использую внешний сервис
https://mlab.com/