Почему на срабатывает функция сохранения в БД в тесте Mocha?

Пишу тест для проверки сохранения пользователя в базу 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/
  • Вопрос задан
  • 472 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы