I 미들웨어로서 여권 보호 API 호출을 가지고 사용자가 어떤 권한이없는 경우테스트 보호 API 호출, 모카 supertest 노드 JS, 여권
가server.get('/api/pipes', auth, api.pipes);
정식 방법은 (401)를 반환한다.
나는 사용자가 loggedin 경우이 시험을 볼 수 있습니다
var postValidLoginCredentials = function(){
return request(url).post('/api/login')
.set('Content-Type', 'multipart/form-data')
.field('email', '[email protected]')
.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를 시도했지만 작동하지 않았습니다.
아이디어가 있으십니까?
내 의견을 아래에서 확인할 기회가 있었습니까? – Esteban
당신의 답을위한 Thx. 게시하기 전에 해결책을 찾았습니다. 로그인시 설정된 쿠키를 사용했습니다. 그런 다음 보호 된 경로 호출에서 "get"쿠키를 사용합니다. 나는 이것을하기 위해 낮은 수준의 superagent를 사용했다. 따라서 솔루션이 제대로 작동하는지 확신 할 수 없습니다. – Per
귀하의 의견을 이해할 수 있는지 확실하지 않지만 여권에서 귀하를 대신해서 쿠키를 설정해서는 안됩니다. 아니면 당신은 당신의 테스트만을 수정 했습니까? – Esteban