在请求设置会话节点JS单元测试
我有一个路线.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禁止错误。
我需要编写该路由的单元测试。我使用的摩卡,薛宝钗,兴农和supertest。我试图在请求方法会话变量使用“表达会话”来设置,如下
app.use(session({accessToken: 'ssshhhhh'}));
也试过设置(“饼干”,[“访问令牌= SSH”],但没有工作。会话令牌是没有得到设置和路线显示qazxsw POI错误
任何人可以对此有一个工作的解决方案?提前致谢。
我使用下面的版本:
节点:8.7,柴:^ 4.1.0,摩卡:^ 5.0.4,节点嘲笑-HTTP:^ 1.6.6,兴农:^ 2.3.2 supertest:^ 3.0.0
回答如下:我不知道如果我完全理解你的问题,但是当我使用403 Forbidden
我设置会话当我在测试文件创建mockedRequest。
node-mocks-http
然后,使实际的路由处理程序设置会话属性。
见const mockRequest = httpMocks.createRequest({
session: { … }
});
约the docs并注意.createRequest()
选项。
在请求设置会话节点JS单元测试
我有一个路线.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禁止错误。
我需要编写该路由的单元测试。我使用的摩卡,薛宝钗,兴农和supertest。我试图在请求方法会话变量使用“表达会话”来设置,如下
app.use(session({accessToken: 'ssshhhhh'}));
也试过设置(“饼干”,[“访问令牌= SSH”],但没有工作。会话令牌是没有得到设置和路线显示qazxsw POI错误
任何人可以对此有一个工作的解决方案?提前致谢。
我使用下面的版本:
节点:8.7,柴:^ 4.1.0,摩卡:^ 5.0.4,节点嘲笑-HTTP:^ 1.6.6,兴农:^ 2.3.2 supertest:^ 3.0.0
回答如下:我不知道如果我完全理解你的问题,但是当我使用403 Forbidden
我设置会话当我在测试文件创建mockedRequest。
node-mocks-http
然后,使实际的路由处理程序设置会话属性。
见const mockRequest = httpMocks.createRequest({
session: { … }
});
约the docs并注意.createRequest()
选项。