【发布时间】:2022-03-30 18:02:21
【问题描述】:
我绝望地试图在 typescript 中模拟 firebase 管理员依赖项以进行单元测试。
我的实际功能如下
import {auth} from 'firebase-admin';
async validateUser(payload: string): Promise<User> {
try {
const resp = await auth().verifyIdToken(payload, true);
return await this.userService.findByUsername(resp.email);
} catch (e) {
return null;
}
}
我正在尝试通过模拟 admin 函数来测试 admin.auth().verifyIdToken(payload, true)。我尝试了如下所示的测试代码
import {auth} from 'firebase-admin';
jest.mock('firebase-admin');
const mockedAuth = auth as jest.Mock;
mockedAuth.mockReturnValue({
verifyIdToken: jest.fn().mockResolvedValue(true),
});
但我收到一条错误消息:TypeError: Cannot read property 'mockReturnValue' of undefined
如果我理解正确,我通过调用jest.mock('firebase-admin') 来模拟整个firebase-admin 包。所以我希望能够调用mockReturnValue 并再次在auth 函数中模拟verifyIdToken 函数。但是,我什至不能打电话给mockReturnValue,因为奇怪的是它似乎不存在。
我需要如何编写代码才能模拟来自auth().verifyIdToken() 的解析值?
【问题讨论】:
标签: typescript unit-testing jestjs