小编Ed *_*nds的帖子

在 Jest 中模拟 Firebase 管理员时出错:“TypeError:admin.firestore 不是函数”

我有一个函数可以通过 Admin SDK 处理与 Cloud Firestore 的连接。我知道该功能工作正常,因为应用程序连接并允许写入数据库。

现在我正在尝试用 Jest 测试这个功能。为了避免在此函数范围之外进行测试,我模拟了 firebase-admin Node 模块。但是,我的测试失败并出现错误“TypeError:admin.firestore不是函数”。

我的函数和测试都是用 TypeScript 编写的,通过 ts-jest 运行,但我不认为这是 TypeScript 错误,因为 VS Code 没有任何抱怨。我相信这是 Jest 自动模拟的问题。

admin.firebase()是一个有效的调用。TypeScript 定义文件将其定义为function firestore(app?: admin.app.App): admin.firestore.Firestore;

我已经阅读了 Jest 文档,但我不明白如何解决这个问题。

这是我的功能:

// /src/lib/database.ts

import * as admin from "firebase-admin"

/**
 * Connect to the database
 * @param key - a base64 encoded JSON string of serviceAccountKey.json
 * @returns - a Cloud Firestore database connection
 */
export function connectToDatabase(key: string): FirebaseFirestore.Firestore {
  // irrelevant code to …
Run Code Online (Sandbox Code Playgroud)

javascript firebase typescript jestjs ts-jest

8
推荐指数
1
解决办法
8427
查看次数

标签 统计

firebase ×1

javascript ×1

jestjs ×1

ts-jest ×1

typescript ×1