使用chai

时间:2016-06-27 11:02:11

标签: javascript cookies chai

请考虑以下代码:

    it('Test logout', function (done) {
    async.each(config.www, function (url, callback) {
        var healthCheck = url + '/'
        chai.request(url).get('/')
            .then(function (res) {
                expect(res, healthCheck).to.have.status(200);
                expect(res.text.indexOf(url + '/logout?type=user">Log out</a>'), 'Logout is incorrect').to.be.greaterThan(0);
                callback();
            })
            .catch(function (err) {
                callback(err);
            })
    }, done);
});

问题是我需要设置一个cookie来绕过一个启动页面。 关于如何实现这一目标的任何想法?

2 个答案:

答案 0 :(得分:6)

这应该有效:

chai.request(url)
    .get('/')
    .set('Cookie', 'cookieName=cookieValue;otherName=otherValue')
    .then(...)

Cookie会以“Cookie”键的标题值发送到服务器,因此您只需手动设置它们即可。

它适用于我的mocha和chai-http,我能够在我的koajs v2 app中重现cookie值

答案 1 :(得分:0)

为了增加佩德罗的答案,我需要将会话ID设置为cookie。为此,我使用stringify在内部对象上生成cookie数据并使用&#34; cookieName =&#34;。

const cValue = "cookieName=" + JSON.stringify({sessionId: sessionId});
chai.request(url)
    .get("/userData")
    .set('Cookie', cValue);
    .then(...)