【发布时间】:2018-09-02 11:15:22
【问题描述】:
我有一条路线.route(myapp/profile)
.get(myProfileMiddleware.checkAccessToken(),
myProfileController.getProfile
)
这里是中间件方法
检查访问令牌
检查会话令牌是否设置如下。
checkAccessToken() {
return (req, rex, next) => {
if (!req.session || !req.session.accessToken) {
// throws 403 Forbidden error
}
// Executes next() method
}}
如果访问令牌存在,则路由执行相应的控制器方法myProfileController.getProfile,否则抛出403禁止错误。
我需要为此路线编写单元测试。我正在使用 mocha、chai、sinon 和 supertest。 我尝试使用“express-session”在请求方法中设置会话变量,如下所示
app.use(session({accessToken: 'ssshhhhh'}));
也试过set('cookie', ['accessToken=sssh'],但没用。会话令牌没有设置,路由显示403 Forbidden错误
有人可以为此提供有效的解决方案吗?提前致谢。
我正在使用以下版本:
Node : 8.7, chai: ^4.1.0, mocha: ^5.0.4, node-mocks-http: ^1.6.6, sinon:^2.3.2 超测:^3.0.0
【问题讨论】:
标签: node.js mocha.js sinon chai supertest