как заглушить вложенное обещание в JS - PullRequest
0 голосов
/ 27 ноября 2018

Привет, сообщество StackOverflow. У меня возникли проблемы с заглушкой этого куска кода для модульного тестирования. Это вложенный обещанный вызов Mongo для создания пользователя и извлечения пользователя из базы данных

return database.collection('users').insertOne(request.body) .then(response => database.collection('users') .find({_id:response.insertedId }) .limit(1) .next());

canрасскажите, пожалуйста, скажите мне, как лучше всего это сделать, лучше всего разделить вызовы на их собственные функции или ...

спасибо

Ответы [ 2 ]

0 голосов
/ 27 ноября 2018

Если я правильно вас понял, я бы взял такую ​​функцию:

const dbOperations = {
 saveUser: (request) => database.collection('users').insertOne(request.body)
        .then(response => database.collection('users')
        .find({_id:response.insertedId })
            .limit(1)
            .next());
}

, а затем вы можете повторно объявить, как

dbOperations.saveUser = (request) => Promise.resolve(request.body);

, вот чтоты хотел?

0 голосов
/ 27 ноября 2018

Используйте метод create, если вы создаете одного пользователя в данный момент.Возвращает созданный объект.
return database.collection('users').create(request.body)

...