在 Typescript 中使用 Mocha 为 Http CallableContext 的 API 调用编写测试

Writing a Test for an API call with Http CallableContext using Mocha in Typescript

提问人:Kingsley Simon 提问时间:11/15/2023 最后编辑:Doug StevensonKingsley Simon 更新时间:11/15/2023 访问量:11

问:

我有以下方法

async addNonAppUserToGroup(
  data: any,
  context: functions.https.CallableContext
) {
  const userId = context.auth?.uid ?? context.auth?.token.user_id;
  functions.logger.debug(`Requested by ${userId}`, data);
}

现在我想为这种方法编写一个规范测试文件。我有以下几点

const callableContext: CallableContext = {
  rawRequest: undefined,
  auth: {
    uid: "somFaciliatator",
  } as AuthData,
};

it("should call method", async () => {
  const data = {
    users: [
      {
        "firstName": "Sky",
        "lastName": "Stars",
      },
    ],
  };
      
  const service = new GroupService(admin.firestore(), {
    userId: "someFacilitator",
    admin,
  });
  
  await service.addNonAppUserToGroup(data, callableContext);
});

在我的代码中,我收到一个错误,上面写着

类型“undefined”不能分配给类型“Request”.ts(2322) https.d.ts(84, 5): 预期类型来自属性“rawRequest”,该属性在此处在类型“CallableContext”上声明

我尝试了多种方法来尝试解决此错误,以便我可以运行测试,但都无济于事。不确定是否有人知道如何在打字稿中为 CallableContext 类编写测试。

打字稿 firebase google-cloud-functions mocha.js

评论

0赞 Doug Stevenson 11/15/2023
错误消息告诉您,您不能只是放入 .您需要一个 Request 类型对象,用于描述发送到函数的 HTTP 请求。undefinedrawRequest
0赞 Doug Stevenson 11/15/2023
如果知道 Firebase 提供了一个完整的独立库用于测试函数,它可能会对您有所帮助,它在细节上做了很多繁重的工作,因此您不必担心实现细节。您应该考虑改用它。firebase.google.com/docs/functions/unit-testing

答: 暂无答案