Javascript 扩展超级测试

Javascript 扩展超级测试,javascript,testing,mocha.js,supertest,superagent,Javascript,Testing,Mocha.js,Supertest,Superagent,我喜欢使用以下方式使用我的身份验证系统: const request = require('./valid_access_token')(require('supertest')); request(app) .get('/v1/bots') .valid_token() .expect('Content-Type', /json/) ... valid_token()将插入有效的访问令牌 module.exports = functi

我喜欢使用以下方式使用我的身份验证系统:

    const request = require('./valid_access_token')(require('supertest'));

    request(app)
    .get('/v1/bots')
    .valid_token()
    .expect('Content-Type', /json/)
    ...
valid_token()将插入有效的访问令牌

    module.exports = function (Request) {

      const Token = require('../../../app/v1/models/loader')('token');
      const UserFactory = require('../fixtures/user');

      Request.prototype.valid_token = function()
      {

        return UserFactory.createAsync('user')
        .then(function(user){
            return new Token({username: user.username}).createWeeklyAsync()
            .then(function(userToken){
                this.set("access-token",userToken[0].token);
                return this;
            })       
        })     
       }        
       return Request;
    }     
但是,当我运行它时,会出现以下错误:

TypeError: request(...).get(...).valid_token is not a function
我尝试了各种不同的方法,但没有成功

所有的功劳都归于

然后在你的测试中

return request(app)
  .post('/user/settings')
  .authenticate(user)
  .send(...)

return request(app)
  .post('/user/settings')
  .authenticate(user)
  .send(...)