Stub isAuthenticated 使用可组合中间件编写

Stub isAuthenticated written with composable-middleware

我有这个中间件功能,用composable-middleware包写的。

var compose = require('composable-middleware');

module.exports.isAuthenticated = function () {
  return compose()
    .use(function (req, res, next) {
        var authToken = req.get('x-auth-token');
        if (!authToken) {
            return res.sendStatus(401);
        }
        next();
    });
};

我尝试用 Sinon.js 存根。如果是这样的话

module.exports.isAuthenticated = function (req, res, next) {
    var authToken = req.get('x-auth-token');
    if (!authToken) {
        return res.sendStatus(401);
    }
    next();
};

我会做的

sinon.stub(auth, 'isAuthenticated').callsArg(2);

但问题是我的函数使用可组合中间件,我不知道如何存根。

其实解决方法很简单。

var compose = require('composable-middleware');

sinon.stub(auth, 'isAuthenticated', function() {
    return compose()
      .use(function (req, res, next) {
        next();
      });
  });