小编Cas*_*ano的帖子

端到端测试中的 NestJS 模拟 JWT 身份验证

我想在 NestJS e2e(集成)测试中模拟 JWT 身份验证。我在我的业务逻辑中使用注入的令牌数据,并且我不想在我的测试代码中插入凭据。

我按照Nest authentication docs实现了 JWT 身份验证。我使用@User与示例中的装饰器类似的装饰器,并在我的业务逻辑中使用有关用户对象的信息。

@Post()
async myPostEndpoint(@Body() body: PostBody, @User() user: MyUser){
    // do stuff using user properties
}
Run Code Online (Sandbox Code Playgroud)

当按照Nest 测试文档中的指示使用 supertest 测试我的应用程序时,我不想发出真正的身份验证请求,因为我需要在我的版本控制系统中保留凭据。

我希望能够覆盖提供者以返回测试用户。却想不通。

我尝试覆盖AuthService'svalidateClientlogin使用Nest 测试文档overrideProvider + useClass/useFactory/useValue中的指示返回默认用户。我还尝试覆盖and 中的方法,但请求仍然返回 401 - Unauthorized。JwtStrategyLocalStrategy

authentication unit-testing mocking typescript nestjs

14
推荐指数
2
解决办法
5321
查看次数