【发布时间】:2020-12-24 09:32:52
【问题描述】:
我的无服务器 lambda 应用程序具有自定义授权器
verify-token:
handler: app/Middleware/VerifyToken.auth
user:
handler: app/Handlers/Users.user
events:
- http:
path: user
method: get
cors: true
authorizer: verify-token
我正在为用户处理程序编写开玩笑的单元测试,但是由于在部署时自定义授权是在执行用户处理程序之前运行的, 如何在 jest 单元测试中应用相同的内容,以便在运行用户处理程序测试之前应用授权?
这是我的测试
const { user } = require('../../app/Handlers/Users');
/**
* Tests for get()
*/
describe('Get user', () => {
it('Get user data', async done => {
let userEvent = {
headers: {
'authorization': 'Bearer TOKEN'
}
}
// user.authorizer();
user(userEvent, null, (error, data) => {
try {
expect(data.statusCode).toBe(200);
done();
} catch (error) {
done(error);
}
});
});
});
【问题讨论】:
-
我认为您不应该在单元测试中包含授权。自定义授权者是另一个允许或拒绝访问实际处理程序的 lambda 函数。在您的测试中,您直接调用处理程序,因此您已通过身份验证步骤。
-
你找到解决办法了吗?
-
没有@JatinMehrotra
-
发布了一个对我有用的解决方案
标签: amazon-web-services aws-lambda jestjs serverless