【发布时间】:2021-08-11 03:18:34
【问题描述】:
我正在尝试用 jest 测试一个嵌套应用程序。我有一个调用服务的警卫,在该服务上我必须检查是否存在确定的标头,但我找不到任何有关如何完成此操作的文档。基本上我正在尝试从 nest.js 测试 canActivate 方法
这是我来自 nest.js 的身份验证保护
export class AuthGuard implements CanActivate {
constructor(private authService: AuthService) { }
canActivate(context: ExecutionContext): boolean | Promise<boolean> | Observable<boolean> {
const request = context.switchToHttp().getRequest();
return this.authService.isValidRequest(request);
}
}
我想用jest来测试下面的方法,不知道是否需要mock一个Request。如果标头已声明,则该方法将返回 true,否则返回 false。
我不知道如何在单元测试中测试标题。
export class AuthService {
constructor() { }
async isValidRequest(req: Request): Promise<boolean> {
const userId = req.headers['user-id'];
if (userId != 'undefined') {
// I'm going to call another service here
return true;
}
return false;
}
【问题讨论】:
标签: node.js unit-testing jestjs nestjs