使用mocha-chai superagent测试多个同时会话

时间:2017-10-01 01:10:16

标签: node.js socket.io mocha superagent chai-http

我正在尝试为多个套接字连接编写测试,我需要多个会话(同时),因为它们是由服务器端的会话ID识别的......

在下面的示例中, client1 将连接并且握手将通过会话ID传递cookie,因此我可以使用 express-socket.io-session 来获取会话该用户的数据......

我遇到的问题是当我想连接第二个套接字时,通过的握手数据显然与第一个套接字相同。

我不能只发送退出请求并更改用户,因为我正在尝试测试多人游戏功能。

var agent = chai.request.agent(app)

describe("authentication", function () {
    it('login as user', function (done) {
        agent
            .post('/login')
            .send({
                username: username,
                password: password
            })
            .then(function (res) {
                expect(res).to.have.status(200);
                expect(res).to.have.cookie('connect.sid');
                done()
            })
            .catch(function (err) {
                done(err)
            })
    });

})


describe("socket tests", function () {
    var client1, client2;

    it('can connect to socket', function (done) {
        client1 = io.connect("http://localhost:3000/", options);
        client1.on('connect', () => {
            done();
        })
    });

    it('can connect second user to socket', function (done) {
        client2 = io.connect("http://localhost:3000/", options);
        client2.on('connect', () => {
            done();
        })
    });
})

0 个答案:

没有答案