Мой код:
const model = require('../db/models/user');
const describe = require('mocha').describe;
const assert = require('chai').assert;
const chaiHttp = require('chai-http');
let chai = require('chai');
let server = require('../server');
chai.use(chaiHttp);
describe('Test user registration, login, update password', () => {
beforeEach((done) => {
// Reset user mode before each test
model.User.remove({}, (err) => {
console.log(err);
done();
})
});
Теперь я получаю сообщение об ошибке
UnhandledPromiseRejectionWarning: TypeError: Невозможно прочитать свойство
'_id' из null
в самом маршруте, а именно:
router.put('/me/update-password', async (req, res, next) => {
const {body} = req;
const auth = req;
const userId = auth._id; // problem on this line!
// rest of code...
});
Итак, после регистрации и входа в систему (что работает нормально, как и должно!), У меня много проблем с обновлением пароля. В params
я отправляю сгенерированный токен, а в body
находится поле пароля с новым паролем. На живом примере (например, Почтальон) он работает как надо, а в тестах - просто нет.
Я действительно понятия не имею и уже потерял много своего времени на это (3 дня).
Может кто-нибудь, пожалуйста, посмотрите, предложите решение?
Очень ценится.
Обновлено с помощью auth.js:
const jwt = require('jsonwebtoken');
const isAu = function(req) {
return jwt.verify(req.headers.authorization.split(' ')[1], 'secret', function (err, decoded) {
if (err) {
return null;
}
return decoded;
});
};
module.exports = isAu;