2016-06-20 9 views
0

認証済みのルートをテストしようとしています。supertestを使用した要求で認証を送信する方法

これは私のコードです:

let request = require('supertest'); 
var superagent = require('superagent'); 
var agent = superagent.agent(); 
var theAccount = { 
    name: '*********', 
    role: 'admin', 
    id: '115039452833383267752' 
}; 
request = request('http://localhost:3000'); 

describe('Live-score',() => { 

    before(function (done) { 
    request 
     .post('/api/login') 
     .send(theAccount) 
     .end(function (err, res) { 
     if (err) { 
      throw err; 
     } 
     agent.saveCookies(res); 
     done(); 
     }); 
    }); 

    it('Should work', (done) => { 
    agent.attachCookies(req); 
    request 
     .get('/api/live-score') 
     .send(agent) 
     .set('Accept', 'text/html') 
     .expect('Content-Type', 'application/json; charset=utf-8') 
     .expect(200, done); 

    }); 

私は次のエラーを取得するしかし:

TypeError: agent.saveCookies is not a function

私はGoogleのパスポートの戦略を使用しています。

答えて

0

これと同じコードを見たのは、前のブロック内でエージェントが宣言された場所です。

あなたは試みることができる:

before(function (done) { 
    agent = superagent.agent(); 
    request 
     .post('/api/login') 
     .send(theAccount) 
     .end(function (err, res) { 
     if (err) { 
      throw err; 
     } 
     agent.saveCookies(res); 
     done(); 
     }); 
    }); 

参考:https://github.com/visionmedia/superagent/issues/352

関連する問題