我通常会在平台上找到我想要的所有东西,但这些天我都在干涸。
这是我的问题: 我正在尝试将护照身份验证(更具体地说是经过身份验证)存根,以便在测试时绕过我的OAuth。 此方法用作我的一个路由中的中间件。 这是一些片段
AuthUtils模块
module.exports.ensureAuthenticated = (req, res, next) => {
if (req.isAuthenticated()) {
console.log('Auth Success', req.session.passport.user);
return next();
}
console.log('Auth Fail');
return res.redirect('/');
};
路线示例:
router.get('/', authUtils.ensureAuthenticated, async (req, res, next) => {
//do stuff
});
单元测试:
const app = require('../../app.js');
const authUtils = require('../../scripts/auth_utils.js');
const service = require('../../services/scenes.js');
const data = require('../fixtures/data.json');
describe.only('Scenes Unit tests', function() {
beforeEach(function() {
this.sandbox = sinon.createSandbox();
})
afterEach(function() {
this.sandbox.restore();
})
it('should get all the scenes', function(done){
this.sandbox.stub(authUtils, 'ensureAuthenticated').returns(true);
this.sandbox.stub(service, 'getScenes').resolves(data.list.success);
chai.request(app)
.get('/api/')
.then((res) => {
authUtils.ensureAuthenticated.should.have.been.calledOnce;
done();
})
.catch((err) => {
done(err);
});
});
})
我尝试使用存根,删除模块的缓存,代理查询,基本上所有已发布的SO解决方案但没有任何效果。存根没有被调用,永远不会被调用
有人设法解决了这个问题吗?
非常感谢你的时间!