使用jest-mock-extended测试prisma时的 typescript 循环参考

gstyhher  于 2023-02-20  发布在  TypeScript
关注(0)|答案(1)|浏览(141)

我开始围绕应用程序中的prisma(v3.6.0)用法编写测试。
为此,我遵循了官方Prisma页面Unit testing with prisma,我正在使用jest-mock-extended
我的问题是,我有一个 typescript 错误时,使用mosed prisma函数:

describe('User routes', () => {
    it('should respond success with array of users', async () => {
        prismaMock.user.findMany.mockResolvedValue([]); // <- here is the error
    }
}
Type of property 'AND' circularly references itself in mapped type

在使用prisma进行github测试时,有一些关于这个问题的讨论。我从讨论中得到了3个选项:

  • 在tsconfig.json中添加"skipLibCheck": true。这破坏了我的代码中的一些内容,并且没有解决我的问题
  • 添加"strictNullChecks": true,也没有影响
  • //@ts-ignore这有效地消除了错误,测试运行顺利

虽然我可以进行测试,但我不希望在测试中忽略这个错误,忽略错误只是一个好主意,除非它不是。
是否有人对此问题有更多信息或建议?

qvtsj1bj

qvtsj1bj1#

谢谢你的帖子,我自己也要打开一个,我的理解是这是由于对prisma库进行了TS检查,对我有效的修复是将这些添加到TS配置中:

"skipLibCheck": true,
"strictNullChecks": true

我知道“skipLibCheck”可能会破坏您代码中的内容,但我认为这可能是正确的方法,因为它将减少编译时间,并且检查第三方库(假设它们是第三方d.ts文件)“通常”没有必要。

相关问题