我有一个以护照作为中间件的受保护的 api 调用:
server.get('/api/pipes', auth, api.pipes);
如果用户未获得授权,则 auth 方法返回 401。
我有这个测试来看看用户是否登录:
var postValidLoginCredentials = function(){
return request(url).post('/api/login')
.set('Content-Type', 'multipart/form-data')
.field('email', 'john.smith@example.com')
.field('password', 'example')
};
//This pass passes
it('should return 200 OK when a user enters a valid user and pass', function(done){
postValidLoginCredentials()
.end(function(err, res){
res.should.have.status('200');
done();
});
});
这是我对受保护的 api 调用的测试:
it('should return 200 OK on GET /api/pipes when user is loggedin', function (done) {
postValidLoginCredentials()
.end(function(err, res){
request(url)
.get('/api/pipes')
.set('Accept', 'application/json')
.expect(200, done);
})
});
我首先发布我的登录信息。然后在登录回调中调用受保护的 api 调用。它应该是 200,但我得到 401。该功能在我的客户端中有效,因此在我的测试中出现了问题。
我也尝试将我的 postValidLoginCredentials 放在一个函数中,但它没有用。
任何想法?