У меня есть этот экспресс-контроллер, чтобы найти количество непрочитанных уведомлений, что пользователь является получателем. Здесь:Почему ответ в работе Postman работает, но не мой тест?
app.get('/api/user/:uid/notifications/newcount', (req, res, next) => {
const firebaseUID = req.params.uid;
User.findOne({ firebaseUID })
.select('_id')
.then(user => Notification.count({
recipients: { $eq: user._id },
usersRead: { $ne: user._id }
})
)
.then(notificationCount => {
console.log(notificationCount.toString());
return res.send(notificationCount.toString())
})
.catch(next);
});
Это прекрасно работает в почтальоне.
Я пытаюсь проверить его с помощью Mocha/Supertest. Однако по какой-то причине res.body
всегда возвращается как пустой объект.
Консольные журналы в реальном контроллере всегда проходят через штраф, хотя.
Если я не отправлю toString()
в res.send()
, я получаю ошибки.
res.body
должен возвращаться как 1
.
Как я могу взять res.body
в нижнем тесте, чтобы сделать утверждение?
it.only('GET to /api/user/firebaseUID/notifications/newcount, gets users unread notifications',
done => {
request(app)
.get(`/api/user/${matt.firebaseUID}/notifications/newcount`)
.end((err, res) => {
console.log(res.body);
done();
});
});
Спасибо!
Что происходит с 'res.statusCode' и' res.text', когда тест терпит неудачу? – Matt
res.text работал :) спасибо – bloppit
Почему бы ему не пройти через тело? – bloppit