如何使用supertest发送带有请求的身份验证

时间:2016-06-20 09:53:12

标签: node.js supertest superagent

我正在尝试测试经过验证的路线。

这是我的代码:

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不是函数

我正在使用Google Passport策略。

1 个答案:

答案 0 :(得分: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