Чай не публикует JSON с почтовым запросом - PullRequest
0 голосов
/ 20 января 2019

Я пытаюсь написать тест для моего 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'
        }
    });
});
...