我使用 Passport.js 进行身份验证(本地策略)并使用 Mocha 和 Supertest 进行测试。
如何使用 Supertest 创建会话并发出经过身份验证的请求?
正如 zeMirco 指出的那样,底层superagent
模块支持会话,自动为您维护cookie。然而,可以使用superagent.agent()
功能来自supertest
,通过一个未记录的功能。
只需使用require('supertest').agent('url')
代替require('supertest')('url')
:
var request = require('supertest');
var server = request.agent('http://localhost:3000');
describe('GET /api/getDir', function(){
it('login', loginUser());
it('uri that requires user to be logged in', function(done){
server
.get('/api/getDir')
.expect(200)
.end(function(err, res){
if (err) return done(err);
console.log(res.body);
done()
});
});
});
function loginUser() {
return function(done) {
server
.post('/login')
.send({ username: 'admin', password: 'admin' })
.expect(302)
.expect('Location', '/')
.end(onResponse);
function onResponse(err, res) {
if (err) return done(err);
return done();
}
};
};
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)