Я пытаюсь написать тест для моего back-end express.js.
Мой код работает, но кажется, что CHAI неправильно публикует мой JSON, а req.body - "{}"
Есть идеи почему?
Любой другой бит, который выполняет тестирование метода, только когда я сказал хорошие значения, решает сломаться.
Тест сделан в Mocha.js
it('/POST /logout => Logout a user by purging a session', (done) => {
let loginInfo = {};
loginInfo.usr = 'testuser';
loginInfo.psw = 'mochatesting197';
let agent = chai.request.agent(app);
let json = {};
json.logout = true;
agent.post('/login')
.send(loginInfo)
.then((res) => {
return agent.post('/logout')
.send(json)
.then((res) => {
res.should.have.status(200);
res.body.should.be.a('object');
res.body['success'].should.have.property('message').eql('YOU HAVE LOGGED OUT');
done();
})
}).catch((err) => {
done(err);
});
});
Способ выхода из системы
router.post('/logout', function (req, res, next) {
if (req.body === undefined || (Object.keys(req.body).length === 0 && req.body.constructor === Object)) return res.status(400).json({
'err': {
'message': 'NO POST DATA'
}
});
if (!req.body.logout || req.body.logout === false) return res.status(400).json({
'err': {
'message': 'WRONG POST DATA'
}
});
if (!req.body.sessionId || req.body.sessionId === undefined) return res.status(400).json({
'err': {
'message': 'WRONG POST DATA'
}
});
client.del(req.body.sessionId);
req.session.destroy();
res.status(200).json({
'success': {
'message': 'YOU HAVE LOGGED OUT'
}
});
});